C ++ Programma om te controleren of een getal kan worden uitgedrukt als som van twee priemgetallen

Voorbeeld om te controleren of een geheel getal (ingevoerd door de gebruiker) kan worden uitgedrukt als de som van twee priemgetallen van alle mogelijke combinaties met behulp van functies.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C ++ programmeeronderwerpen:

  • C ++ voor Loop
  • C ++ if, if… else en genest if… else
  • C ++ Functies
  • Typen door de gebruiker gedefinieerde functies in C ++

Dit programma neemt een positief geheel getal van de gebruiker en controleert of dat getal kan worden uitgedrukt als de som van twee priemgetallen.

Als het getal kan worden uitgedrukt als de som van twee priemgetallen, toont de uitvoer de combinatie van de priemgetallen.

Om deze taak uit te voeren, wordt een door de gebruiker gedefinieerde functie gemaakt om het priemgetal te controleren.

Voorbeeld: controleer of een getal kan worden uitgedrukt als een som van twee priemgetallen

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

Uitvoer

 Voer een positief geheel getal in: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

In dit programma gebruiken we de checkPrime()functie om te controleren of een getal een priemgetal is of niet.

In main()nemen we een nummer van de gebruiker en slaan het op in de variabele n.

We initialiseren ook een boolvariabele vlag naar false. We gebruiken deze variabele om te bepalen of het invoergetal kan worden uitgedrukt als de som van twee priemgetallen.

We herhalen vervolgens een lus van i = 2naar i = n/2. Bij elke iteratie controleren we of i een priemgetal is of niet.

Als i een priemgetal is, controleren we of n - i een priemgetal is of niet.

Als n - i ook een priemgetal is, dan weten we dat n kan worden uitgedrukt als de som van twee priemgetallen i en n - i.

Dus we drukken het resultaat op het scherm af en veranderen de waarde van de vlag in true. Anders blijft de vlag bestaan false.

Dit proces gaat door totdat de lus eindigt.

Als de vlag stilstaat false, weten we dat n niet kan worden uitgedrukt als de som van twee priemgetallen, en we drukken dat bericht op het scherm af.

Interessante artikelen...