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.
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
breakSchleifen frühzeitig beendet. - Wie man logische Überprüfungen mit
ifkombiniert.