Kurs:Python/LG/Py2009/Mathematik/Primzahl
Erscheinungsbild
„Eine Primzahl ist eine natürliche Zahl mit genau zwei natürlichen Zahlen als Teiler, nämlich der Zahl 1 und sich selbst.“
Finale Fassung
[Bearbeiten]pruefung = 0
print ("Dieses Programm prueft, ob eine Zahl n eine Primzahl ist.")
for n in range (2, 20):
for i in range (2, n+1):
if n * 1.0 % i == 0:
pruefung = 1
break
if pruefung == 1:
pruefung = 0
else:
print n, "ist eine Primzahl."
aber rauslöschen.
Jetzt Ausgabe Primzahlen zwischen 2 und 10
[Bearbeiten]Im nächsten Schritt möchte ich den Quellcode vereinfachen. Das Programm soll nur noch die Primzahlen ausgeben.
pruefung = 0
print "Dieses Programm prueft, ob eine Zahl n eine Primzahl ist."
# Eingabe
# n = input ("Bitte geben Sie eine Zahl n ein: ")
for n in range (2, 10):
if n <= 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
for i in range (2, n):
if n * 1.0 % i == 0:
print n * 1.0 / i, "Damit keine Primzahl!"
pruefung = 1
break
else:
print n * 1.0 / i, "Primzahl moeglich!"
if pruefung == 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
pruefung = 0
else:
print "Die von Ihnen eingegebene Zahl", n, "ist eine Primzahl."
Leicht verbesserte Version
[Bearbeiten]Da ist noch ein kleiner Bug: Bei 1 wird der Hinweis "keine Primzahl" gleich zweimal ausgegeben.
pruefung = 0
print "Dieses Programm prueft, ob eine Zahl n eine Primzahl ist."
# Eingabe
n = input ("Bitte geben Sie eine Zahl n ein: ")
if n <= 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
for i in range (2, n):
if n * 1.0 % i == 0:
print n * 1.0 / i, "Damit keine Primzahl!"
pruefung = 1
break
else:
print n * 1.0 / i, "Primzahl moeglich!"
if pruefung == 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
else:
print "Die von Ihnen eingegebene Zahl", n, "ist eine Primzahl."
Erste lauffähige Version
[Bearbeiten]pruefung = 0
print "Dieses Programm prueft, ob eine Zahl n eine Primzahl ist."
n = input ("Bitte geben Sie eine Zahl n ein: ")
if n <= 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
for i in range (2, n):
if n * 1.0 % i == 0:
print n * 1.0 / i, "Damit keine Primzahl!"
pruefung = 1
else:
print n * 1.0 / i, "Primzahl moeglich!"
if pruefung == 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
else:
print "Die von Ihnen eingegebene Zahl", n, "ist eine Primzahl."
Fehlerhaft 2
[Bearbeiten]pruefung = 0
print "Dieses Programm prueft, ob eine Zahl n eine Primzahl ist."
n = input ("Bitte geben Sie eine Zahl n ein: ")
if n <= 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
for i in range (2, n):
if n * 1.0 % i > 0:
pruefung = 1
if pruefung == 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
else:
print "Die von Ihnen eingegebene Zahl", n, "ist eine Primzahl."
Fehlerhaft 1
[Bearbeiten]pruefung = 0
print "Dieses Programm prueft, ob eine Zahl n eine Primzahl ist."
n = input ("Bitte geben Sie eine Zahl n ein: ")
if n <= 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
for i in range (2, n):
if n * 1.0 % i > 0:
pruefung = 1
print n * 1.0 / i, "Keine Primzahl!"
else:
print n * 1.0 / i, "Alles in Ordnung!"
if pruefung == 1:
print "Die von Ihnen eingegebene Zahl", n, "ist keine Primzahl."
else:
print "Die von Ihnen eingegebene Zahl", n, "ist eine Primzahl."