C ++ - programma om te controleren of een nummer Prime is of niet

Voorbeeld om te controleren of een geheel getal (ingevoerd door de gebruiker) een priemgetal is of niet met for lus en if… else-instructie.

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

  • C ++ if, if… else en genest if… else
  • C ++ voor Loop
  • C ++ break and continue Statement

Een positief geheel getal dat alleen deelbaar is door 1 en zelf bekend staat als priemgetal.

Bijvoorbeeld: 13 is een priemgetal omdat het alleen deelbaar is door 1 en 13, maar 15 is geen priemgetal omdat het deelbaar is door 1, 3, 5 en 15.

Opmerking: 0 en 1 zijn geen priemgetallen.

Voorbeeld: controleer priemgetal

 #include using namespace std; int main() ( int i, n; bool isPrime = true; cout <> n; // 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; ) ) ) if (isPrime) cout << n << " is a prime number"; else cout << n << " is not a prime number"; return 0; ) 

Uitvoer

 Voer een positief geheel getal in: 29 29 is een priemgetal.

Dit programma neemt een positief geheel getal van de gebruiker en slaat dit op in de variabele n.

Merk op dat de booleaanse variabele isPrime wordt geïnitialiseerd trueaan het begin van het programma.

Omdat 0 en 1 geen priemgetallen zijn, controleren we eerst of het ingevoerde getal een van die getallen is of niet. Als het invoernummer 0 of 1 is , wordt de waarde van isPrime ingesteld op false.

Anders blijft de oorspronkelijke waarde van isPrime ongewijzigd en wordt de forlus uitgevoerd, die controleert of het door de gebruiker ingevoerde nummer perfect deelbaar is door i of niet.

 for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) 

De forlus loopt van i == 2tot i <= n / 2en verhoogt de waarde van i met 1 bij elke iteratie.

De lus eindigt op i == n / 2omdat we geen factor voor n kunnen vinden buiten het getal n / 2 . Elke iteratie daarna n / 2is dus overbodig.

Als het door de gebruiker ingevoerde nummer perfect deelbaar is door i, dan is isPrime ingesteld op falseen zal het nummer geen priemgetal zijn.

Maar als het ingangsnummer niet perfect deelbaar is door i gedurende de hele lus, dan betekent dit dat het ingangsnummer alleen deelbaar is door 1 en dat nummer zelf.

Het gegeven nummer is dus een priemgetal.

In het geval van mislukt n == 2de forlus en blijft de waarde van isPrime behouden true.

Interessante artikelen...