C ++ - Programm zum Überprüfen, ob eine Zahl eine Primzahl ist oder nicht

Inhaltsverzeichnis

Beispiel zum Überprüfen, ob eine Ganzzahl (vom Benutzer eingegeben) eine Primzahl ist oder nicht, die for-Schleife verwendet und die Anweisung if… else.

Um dieses Beispiel zu verstehen, sollten Sie die folgenden C ++ - Programmierthemen kennen:

  • C ++ if, if… else und Nested if… else
  • C ++ for Loop
  • C ++ break and continue-Anweisung

Eine positive ganze Zahl, die nur durch 1 teilbar ist und selbst als Primzahl bezeichnet wird.

Zum Beispiel: 13 ist eine Primzahl, weil sie nur durch 1 und 13 teilbar ist, aber 15 ist keine Primzahl, weil sie durch 1, 3, 5 und 15 teilbar ist.

Hinweis: 0 und 1 sind keine Primzahlen.

Beispiel: Primzahl prüfen

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

Ausgabe

 Geben Sie eine positive ganze Zahl ein: 29 29 ist eine Primzahl.

Dieses Programm nimmt dem Benutzer eine positive Ganzzahl und speichert sie in der Variablen n.

Beachten Sie, dass die boolesche Variable isPrime zu trueBeginn des Programms initialisiert wird .

Da 0 und 1 keine Primzahlen sind, prüfen wir zunächst, ob die eingegebene Nummer eine dieser Zahlen ist oder nicht. Wenn die Eingangsnummer entweder 0 oder 1 ist , wird der Wert von isPrime auf gesetzt false.

Andernfalls bleibt der Anfangswert von isPrime unverändert und die forSchleife wird ausgeführt, die prüft, ob die vom Benutzer eingegebene Zahl durch i perfekt teilbar ist oder nicht.

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

Die forSchleife läuft von i == 2bis i <= n / 2und erhöht den Wert von i mit jeder Iteration um 1.

Die Schleife endet bei, i == n / 2weil wir keinen Faktor für n jenseits der Zahl finden können n / 2 . Alle darüber hinausgehenden Iterationen n / 2sind also redundant.

Wenn die vom Benutzer eingegebene Zahl durch i perfekt teilbar ist, wird isPrime auf gesetzt falseund die Zahl ist keine Primzahl.

Wenn die Eingangsnummer jedoch nicht über die gesamte Schleife perfekt durch i teilbar ist, bedeutet dies, dass die Eingangsnummer nur durch 1 und diese Zahl selbst teilbar ist.

Die angegebene Zahl ist also eine Primzahl.

Im Fall von n == 2kann die forSchleife nicht ausgeführt werden und der Wert von isPrime bleibt erhalten true.

Interessante Beiträge...