C ++ - program til kontrol af, om et tal kan udtrykkes som sum af to primtal

Eksempel for at kontrollere, om et heltal (indtastet af brugeren) kan udtrykkes som summen af ​​to primtal for alle mulige kombinationer ved brug af funktioner.

For at forstå dette eksempel skal du have kendskab til følgende C ++ programmeringsemner:

  • C ++ til Loop
  • C ++ hvis, hvis … ellers og Nestet hvis … ellers
  • C ++ funktioner
  • Typer af brugerdefinerede funktioner i C ++

Dette program tager et positivt heltal fra brugeren og kontrollerer, om dette tal kan udtrykkes som summen af ​​to primtal.

Hvis tallet kan udtrykkes som summen af ​​to primtal, viser output kombinationen af ​​primtalene.

For at udføre denne opgave oprettes en brugerdefineret funktion til at kontrollere primtal.

Eksempel: Kontroller, om et tal kan udtrykkes som en sum af to primtal

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

Produktion

 Indtast et positivt heltal: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

I dette program bruger vi checkPrime()funktionen til at kontrollere, om et tal er prime eller ej.

I main()tager vi et tal fra brugeren og gemmer det i variablen n.

Vi initialiserer også et boolvariabelt flag til false. Vi bruger denne variabel til at bestemme, om inputnummeret kan udtrykkes som summen af ​​to primtal.

Vi gentager derefter en løkke fra i = 2til i = n/2. I hver iteration kontrollerer vi, om i er et primtal eller ej.

Hvis jeg er en prime, kontrollerer vi, om n - i er prime eller ej.

Hvis n - i også er et primtal, så ved vi, at n kan udtrykkes som summen af ​​to primtal i og n - i.

Så vi udskriver resultatet på skærmen og ændrer værdien af ​​flag til true. Ellers forbliver flag false.

Denne proces fortsætter, indtil sløjfen slutter.

Hvis flag stadig er false, så ved vi, at n ikke kan udtrykkes som summen af ​​to primtal, og vi udskriver denne besked på skærmen.

Interessante artikler...