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 true
Beginn 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 for
Schleife 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 for
Schleife läuft von i == 2
bis i <= n / 2
und erhöht den Wert von i mit jeder Iteration um 1.
Die Schleife endet bei, i == n / 2
weil wir keinen Faktor für n jenseits der Zahl finden können n / 2
. Alle darüber hinausgehenden Iterationen n / 2
sind also redundant.
Wenn die vom Benutzer eingegebene Zahl durch i perfekt teilbar ist, wird isPrime auf gesetzt false
und 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 == 2
kann die for
Schleife nicht ausgeführt werden und der Wert von isPrime bleibt erhalten true
.