Program C ++ pentru a verifica dacă un număr poate fi exprimat ca sumă de două numere prime

Exemplu pentru a verifica dacă un număr întreg (introdus de utilizator) poate fi exprimat ca suma a două numere prime ale tuturor combinațiilor posibile cu utilizarea funcțiilor.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele următoarelor subiecte de programare C ++:

  • C ++ pentru buclă
  • C ++ dacă, dacă … altfel și cuibărit dacă … altfel
  • Funcții C ++
  • Tipuri de funcții definite de utilizator în C ++

Acest program ia un număr întreg pozitiv de la utilizator și verifică dacă acel număr poate fi exprimat ca suma a două numere prime.

Dacă numărul poate fi exprimat ca suma a două numere prime, rezultatul arată combinația numerelor prime.

Pentru a efectua această sarcină, este creată o funcție definită de utilizator pentru a verifica numărul prim.

Exemplu: Verificați dacă un număr poate fi exprimat ca o sumă de două numere prime

 #include using namespace std; bool checkPrime(int n); int main() ( int n, i; bool flag = false; cout <> n; for(i = 2; i <= n/2; ++i) ( if (checkPrime(i)) ( if (checkPrime(n - i)) ( cout << n << " = " << i << " + " << n-i << endl; flag = true; ) ) ) if (!flag) cout << n << " can't be expressed as sum of two prime numbers."; return 0; ) // Check prime number bool checkPrime(int n) ( int i; bool isPrime = true; // 0 and 1 are not prime numbers if (n == 0 || n == 1) ( isPrime = false; ) else ( for(i = 2; i <= n/2; ++i) ( if(n % i == 0) ( isPrime = false; break; ) ) ) return isPrime; ) 

Ieșire

 Introduceți un număr întreg pozitiv: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

În acest program, folosim checkPrime()funcția pentru a verifica dacă un număr este sau nu prim.

În main(), luăm un număr de la utilizator și îl stocăm în variabila n.

De asemenea, inițializăm un boolsteag variabil către false. Folosim această variabilă pentru a determina dacă numărul de intrare poate fi exprimat ca suma a două numere prime.

Apoi iterăm o buclă de la i = 2la i = n/2. În fiecare iterație, verificăm dacă i este un număr prim sau nu.

Dacă i este prim, verificăm dacă n - i este prim sau nu.

Dacă n - i este, de asemenea, prim, atunci știm că n poate fi exprimat ca suma a două numere prime i și n - i.

Deci, imprimăm rezultatul pe ecran și schimbăm valoarea steagului în true. În caz contrar, steagul rămâne false.

Acest proces continuă până când se termină bucla.

Dacă steagul este încă false, atunci știm că n nu poate fi exprimat ca suma a două numere prime și imprimăm acel mesaj pe ecran.

Articole interesante...