Anfänger probleme :-)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Enes01
User
Beiträge: 3
Registriert: Montag 30. November 2020, 16:58

Was mache ich da falsch das nummer 1 auch als Primzahl augegeben wird, obwohl es keine ist. Danke im voraus!!!

def primZahl(zahl):
for teiler in range(2, int(zahl/2)+1):
if zahl % teiler == 0:
return False
return True
zahl = int(input("Zahl eingeben: "))
if primZahl(zahl):
print("ist primzahl")
else:
print("ist nicht primzahl")
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Die erste Frage ist, wie oft die for-Schleife bei unterschiedlichen Zahlen durchlaufen wird?
Die zweite Frage ist, welcher Teiler bei 1 % teiler denn 0 ergeben würde?
Und wenn Du diese zwei Fragen beantworten kannst, dann folgt die Frage, warum es für bestimmte Zahlen notwendig ist, eine Sonderbehandlung einzufügen?
Enes01
User
Beiträge: 3
Registriert: Montag 30. November 2020, 16:58

Das Programm gibt die Nr 1 auch als Primzahl, was ich nicht will, und ausser dem hab vor 3 Monaten mit Python angefangen, bin beim lernen.
Kann dir die Fragen nicht so beantworten sorry. Könntest du das Programm ausbessern damit ich sehe wo das Problem liegt, vielen vielen dank.
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie oft, kannst du entweder berechnen, oder per print innerhalb der for-Schleife einfach ausgeben lassen. Die zweite Frage ist eher mathematisch, lässt sich aber auch einfach mit Python berechnen. Und das dritte ist quasi schon die Antwort auf deine Frage und ganz einfach per if umsetzbar.
Enes01
User
Beiträge: 3
Registriert: Montag 30. November 2020, 16:58

#########Gelöst#######Solved#####
def primZahl(zahl):
if zahl == 1:
return False
for teiler in range(2, int(zahl/2)+1):
if zahl % teiler == 0:
return False
return True
zahl = int(input("Bitte eine Zahl eingeben: "))
if primZahl(zahl):
print(" ist Primzahl")
else:
print("ist nicht Primzahl")
Antworten