Programma C ++ per verificare se un numero può essere espresso come somma di due numeri primi

Esempio per verificare se un intero (inserito dall'utente) può essere espresso come somma di due numeri primi di tutte le possibili combinazioni con l'utilizzo di funzioni.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione C ++:

  • C ++ per Loop
  • C ++ if, if … else e Nested if … else
  • Funzioni C ++
  • Tipi di funzioni definite dall'utente in C ++

Questo programma prende un numero intero positivo dall'utente e controlla se quel numero può essere espresso come la somma di due numeri primi.

Se il numero può essere espresso come somma di due numeri primi, l'output mostra la combinazione dei numeri primi.

Per eseguire questa operazione, viene creata una funzione definita dall'utente per controllare il numero primo.

Esempio: controlla se un numero può essere espresso come somma di due numeri primi

 #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; ) 

Produzione

 Immettere un numero intero positivo: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

In questo programma, usiamo la checkPrime()funzione per verificare se un numero è primo o meno.

In main(), prendiamo un numero dall'utente e lo memorizziamo nella variabile n.

Inizializziamo anche un boolflag di variabile su false. Usiamo questa variabile per determinare se il numero di input può essere espresso come la somma di due numeri primi.

Quindi iteriamo un ciclo da i = 2a i = n/2. In ogni iterazione, controlliamo se i è un numero primo o meno.

Se i è un numero primo, controlliamo se n - i è primo oppure no.

Se n - i è anche un primo, allora sappiamo che n può essere espresso come la somma di due numeri primi i e n - i.

Quindi, stampiamo il risultato sullo schermo e cambiamo il valore di flag in true. Altrimenti, la bandiera rimane false.

Questo processo continua fino al termine del ciclo.

Se flag è fermo false, sappiamo che n non può essere espresso come la somma di due numeri primi e stampiamo quel messaggio sullo schermo.

Articoli interessanti...