Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function is_prime($int)
- {
- for ($p=2; $p < $int; $p++)
- if ($int % $p == 0) return false;
- return true;
- }
- /*
- Алгоритм построения чётных совершенных чисел описан в IX книге Начал Евклида, где было доказано, что число {\displaystyle \ 2^{p-1}(2^{p}-1)} \ 2^{{p-1}}(2^{p}-1) является совершенным, если число {\displaystyle \ 2^{p}-1} \ 2^{p}-1 является простым (т. н. простые числа Мерсенна)[2]. Впоследствии Леонард Эйлер доказал, что все чётные совершенные числа имеют вид, указанный Евклидом.
- */
- $perfect_cnt = 0;
- for ($p=2; $perfect_cnt < 10; $p++) {
- if (is_prime($p)) {
- if (is_prime( pow(2,$p) - 1 )) {
- $perfect_number = pow(2, $p-1)*(pow(2,$p)-1);
- echo "Найдено совершенное число: " . $perfect_number . "\n";
- $perfect_cnt++;
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment