garrylie

Untitled

Dec 7th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.04 KB | None | 0 0
  1. <?php
  2.    
  3.     function is_prime($int)
  4.     {
  5.         for ($p=2; $p < $int; $p++)
  6.             if ($int % $p == 0) return false;
  7.         return true;
  8.     }
  9.  
  10.     /*
  11.     Алгоритм построения чётных совершенных чисел описан в IX книге Начал Евклида, где было доказано, что число {\displaystyle \ 2^{p-1}(2^{p}-1)} \ 2^{{p-1}}(2^{p}-1) является совершенным, если число {\displaystyle \ 2^{p}-1} \ 2^{p}-1 является простым (т. н. простые числа Мерсенна)[2]. Впоследствии Леонард Эйлер доказал, что все чётные совершенные числа имеют вид, указанный Евклидом.
  12.     */
  13.  
  14.     $perfect_cnt = 0;
  15.  
  16.     for ($p=2; $perfect_cnt < 10; $p++) {
  17.         if (is_prime($p)) {
  18.             if (is_prime( pow(2,$p) - 1 )) {
  19.                 $perfect_number = pow(2, $p-1)*(pow(2,$p)-1);
  20.                 echo "Найдено совершенное число: " . $perfect_number . "\n";
  21.                 $perfect_cnt++;
  22.             }
  23.         }
  24.     }
  25.    
  26. ?>
Advertisement
Add Comment
Please, Sign In to add comment