Musterlösung: Primzahlerkennung

Dies ist die dritte Programmieraufgabe. Sie zeigt, wie man mit Bedingungen, Schleifen und dem Modulo-Operator prüft, ob eine Zahl eine Primzahl ist.

Erklärung der Lösung

Eine Primzahl ist nur durch 1 und sich selbst teilbar. Um das zu prüfen, verwendet das Programm eine Schleife, die alle möglichen Teiler testet. Wird ein Teiler gefunden, ist die Zahl keine Primzahl – die Schleife wird mit break beendet.

Schritt-für-Schritt-Erklärung

1. Zahl vom Benutzer einlesen

zahl = int(input("Bitte gib eine Zahl ein: "))

Die Eingabe wird mit input() gelesen und mit int() in eine ganze Zahl umgewandelt. Nur so kann sie in mathematischen Vergleichen und Modulo-Operationen verwendet werden.

2. Prüfen, ob die Zahl eine Primzahl ist

if zahl > 1:
    ist_primzahl = True

Nur Zahlen grösser als 1 können Primzahlen sein. Die Variable ist_primzahl wird zuerst auf True gesetzt. Falls ein Teiler gefunden wird, wird sie auf False geändert.

for i in range(2, zahl):
    if zahl % i == 0:
        ist_primzahl = False
        break

Die Schleife überprüft alle Zahlen von 2 bis zahl − 1. Der Modulo-Operator % prüft, ob die Eingabe ohne Rest teilbar ist. Wird ein solcher Teiler gefunden, ist die Zahl keine Primzahl – die Schleife wird mit break beendet.

3. Ergebnis ausgeben

if ist_primzahl:
    print(f"{zahl} ist eine Primzahl.")
else:
    print(f"{zahl} ist keine Primzahl.")

Mit einer einfachen if/else-Abfrage wird das Resultat ausgegeben. f-Strings sorgen dafür, dass die Zahl direkt in den Text eingefügt wird.

4. Ausnahmefall: Zahl kleiner oder gleich 1

else:
    print("Bitte gib eine Zahl grösser als 1 ein.")

Diese Zeilen behandeln den Sonderfall für 0 oder 1. Solche Eingaben sind keine Primzahlen, deshalb erfolgt eine klare Rückmeldung.

Komplette Musterlösung (Python)

Was du aus dieser Aufgabe lernst

  • Wie man mit % prüft, ob eine Zahl teilbar ist.
  • Wie for-Schleifen systematisch Werte prüfen.
  • Wie man mit break Schleifen frühzeitig beendet.
  • Wie man logische Überprüfungen mit if kombiniert.
Zurück zur Aufgabe
Weiter zur nächsten Aufgabe