fork(1) download
  1. // Найти все совершенные числа, не превосходящие 2^32 – 1
  2. #include <iostream>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. // Подпрограмма определяет, является ли число n простым
  7. bool is_prime(unsigned long long n) {
  8. unsigned long long i = 3;
  9. while (i < sqrt(n)) {
  10. if (n % i == 0) return false;
  11. i += 2;
  12. }
  13. return true;
  14. }
  15.  
  16. int main() {
  17. unsigned long long p = 1, n = 1;
  18. while (p * n < (4 * n - 1) * 2 * n) { // пока числа увеличиваются
  19. p = 2 * n - 1;
  20. if (is_prime(p)) cout << n * p << " ";
  21. n <<= 1;
  22. }
  23. return 0;
  24. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
1 6 28 496 8128 33550336 8589869056 137438691328 2305843008139952128