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 bool
variabelt 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 = 2
til 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.