Kurs:Python/LG/Py2009/Mathematik/Primzahl

„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."