// Найти все совершенные числа, не превосходящие 2^32 – 1
#include <iostream>
#include <cmath>
using namespace std;
// Подпрограмма определяет, является ли число n простым
bool is_prime(unsigned long long n) {
unsigned long long i = 3;
while (i < sqrt(n)) {
if (n % i == 0) return false;
i += 2;
}
return true;
}
int main() {
unsigned long long p = 1, n = 1;
while (p * n < (4 * n - 1) * 2 * n) { // пока числа увеличиваются
p = 2 * n - 1;
if (is_prime(p)) cout << n * p << " ";
n <<= 1;
}
return 0;
}
Ly8g0J3QsNC50YLQuCDQstGB0LUg0YHQvtCy0LXRgNGI0LXQvdC90YvQtSDRh9C40YHQu9CwLCDQvdC1INC/0YDQtdCy0L7RgdGF0L7QtNGP0YnQuNC1IDJeMzIg4oCTIDEKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyDQn9C+0LTQv9GA0L7Qs9GA0LDQvNC80LAg0L7Qv9GA0LXQtNC10LvRj9C10YIsINGP0LLQu9GP0LXRgtGB0Y8g0LvQuCDRh9C40YHQu9C+IG4g0L/RgNC+0YHRgtGL0LwKYm9vbCBpc19wcmltZSh1bnNpZ25lZCBsb25nIGxvbmcgIG4pIHsgIAoJdW5zaWduZWQgbG9uZyBsb25nICBpID0gMzsKCXdoaWxlIChpIDwgc3FydChuKSkgewoJCWlmIChuICUgaSA9PSAwKSByZXR1cm4gZmFsc2U7CgkJaSArPSAyOwoJfQoJcmV0dXJuIHRydWU7Cn0KCmludCBtYWluKCkgewoJdW5zaWduZWQgbG9uZyBsb25nIHAgPSAxLCBuID0gMTsKCXdoaWxlIChwICogbiA8ICg0ICogbiAtIDEpICogMiAqIG4pIHsgLy8g0L/QvtC60LAg0YfQuNGB0LvQsCDRg9Cy0LXQu9C40YfQuNCy0LDRjtGC0YHRjwoJCXAgPSAyICogbiAtIDE7IAoJCWlmIChpc19wcmltZShwKSkgY291dCA8PCBuICogcCA8PCAiICI7CgkJbiA8PD0gMTsKCX0gCglyZXR1cm4gMDsKfQ==