Advertisement
dllbridge

Untitled

May 13th, 2023
1,311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.15 KB | None | 0 0
  1.  
  2.  
  3. #include <iostream>
  4. #include <cmath>
  5. using namespace std;
  6.  
  7.  
  8. bool isPrime(int n);
  9.  
  10.  
  11.  
  12.  
  13. ////////////////////////////////
  14. int main()
  15. {
  16.    
  17.    
  18.     setlocale(LC_ALL, "Rus");
  19.    
  20.     int   nNum,
  21.             a1,
  22.             a2;
  23.          
  24.     bool found;          // Flag
  25.    
  26.    
  27.     /*
  28.     for(int i = 4; i < 1000; i ++) //  Проверка-печать ряла простых чисел
  29.     {
  30.    
  31.         a1 = isPrime(i);
  32.         if(a1) cout << i << ", ";
  33.     }
  34.    
  35.     return 0; */
  36.    
  37. LC_01:                               cout << "Введите четное число, большее трех: "    << endl; cin >> nNum;
  38.     if (nNum <= 3 || nNum % 2 == 1)  cout << "Введено неверное число!"              << endl;
  39.     else
  40.     {
  41.         a1    =  2,
  42.         a2    =  nNum - a1;
  43.         found =  0;            // Flag
  44.        
  45.         while(a1 <= a2)
  46.         {
  47.             if(isPrime(a1) && isPrime(a2))
  48.             {
  49.                 found = 1;
  50.                 break;
  51.             }
  52.            
  53.             a1 ++;
  54.             a2 = nNum - a1;
  55.         }
  56.  
  57.         if(found)   cout << nNum << " = " << a1 << " + " << a2 << endl;
  58.         else        cout << "Не удалось найти два простых числа, сумма которых равна " << nNum << endl;
  59.         goto LC_01;
  60.     }
  61. return 0;  
  62. }
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. // функция проверяет - простое ли число n
  70. //////////////////////////////////////////////////////////////
  71. bool isPrime(int n)                                         //
  72. {
  73.    
  74.     if(n > 1)
  75.     {
  76.                    
  77.         for(int i = 2; i < n; i++)                                       // в цикле перебираем числа от 2 до n - 1
  78.         {
  79.             if(n % i == 0) return 0;      // если n делится без остатка на i - возвращаем false (число не простое)
  80.         }      
  81.  
  82.               // если программа дошла до данного оператора, то возвращаем true (число простое) - проверка пройдена
  83.         return 1;
  84.     }   return 0;                                                     // иначе возвращаем false (число не простое)                    
  85. }
  86.  
  87.  
  88.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement