Advertisement
Solingen

z6.1.cpp

Dec 21st, 2024
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. // Проверка на простоту
  5. bool isPrime(unsigned long long x)
  6. {
  7.     if (x < 2) return false;
  8.     for (unsigned long long i = 2; i*i <= x; i++)
  9.     {
  10.         if (x % i == 0) return false;
  11.     }
  12.     return true;
  13. }
  14.  
  15. int main()
  16. {
  17.     int N;
  18.     cout << "Сколько чисел Ферма вывести? ";
  19.     cin >> N;
  20.  
  21.     for (int n = 0; n < N; n++)
  22.     {
  23.         // F_n = 2^(2^n) + 1
  24.         // Осторожно с переполнением! Для больших n это число колоссально.
  25.         unsigned long long power = 1ULL << (1 << n);
  26.         // Но если n большой (скажем > 5), это превысит 64 бита.
  27.         // В учебных целях (n <= 5) обычно хватает 64-битной переменной.
  28.         unsigned long long F = power + 1;
  29.  
  30.         cout << "F(" << n << ") = " << F;
  31.  
  32.         if (isPrime(F)) cout << " (простое)\n";
  33.         else            cout << " (непростое)\n";
  34.     }
  35.     return 0;
  36. }
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement