Seite 1 von 1

Anfänger probleme :-)

Verfasst: Montag 30. November 2020, 17:02
von Enes01
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")

Re: Anfänger probleme :-)

Verfasst: Montag 30. November 2020, 17:29
von Sirius3
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?

Re: Anfänger probleme :-)

Verfasst: Montag 30. November 2020, 18:00
von Enes01
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.

Re: Anfänger probleme :-)

Verfasst: Montag 30. November 2020, 18:13
von Sirius3
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.

Re: Anfänger probleme :-)

Verfasst: Montag 30. November 2020, 23:09
von Enes01
#########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")