Advertisement
Solingen

z4.2.cpp

Dec 21st, 2024
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. // Быстрая проверка на простоту (подход «до sqrt»)
  5. bool isPrime(long long x)
  6. {
  7.     if (x < 2) return false;
  8.     for (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.     // Будем хранить найденные простые в обычном статическом массиве (или динамически)
  22.     const int MAXP = 200; // на всякий случай
  23.     long long primes[MAXP];
  24.     int countPrimes = 0;
  25.  
  26.     // Заполним первые n простых (с запасом, скажем, 200)
  27.     long long num = 2;
  28.     while(countPrimes < N)
  29.     {
  30.         if (isPrime(num))
  31.         {
  32.             primes[countPrimes] = num;
  33.             countPrimes++;
  34.         }
  35.         num++;
  36.     }
  37.  
  38.     // Теперь выводим числа Евклида
  39.     for (int i = 0; i < N; i++)
  40.     {
  41.         long long product = 1;
  42.         for (int k = 0; k <= i; k++)
  43.         {
  44.             product *= primes[k];
  45.         }
  46.         long long E = product + 1;
  47.         bool primeCheck = isPrime(E);
  48.  
  49.         cout << "E(" << i+1 << ") = " << E;
  50.         if (primeCheck) cout << " (простое)\n";
  51.         else            cout << " (непростое)\n";
  52.     }
  53.  
  54.     return 0;
  55. }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement