Probleme beim Programieren von Primzahlen

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
DunjaS
User
Beiträge: 6
Registriert: Dienstag 23. August 2011, 19:27

Hallo ihr Lieben,

Ich habe die ehrenvolle Aufgabe ein Programm mit Python zu schreiben, welches eine Zahl als input fordert und mir anschliessend ausgeben soll ob es eine Primzahl ist oder nicht(auf spanisch dann 'compuesto').
Folgendes ist mein gescheiterter Versuch:

n=int (raw_input('numero:'))


for i in range (n/2,2,-1):
A= float(n%i)
if A == 0.0:
es_primo= False
print n, 'es compuesto'
break
else:
print n,'es primo'
es_primo = True


Das Programm stimmt fuer die zahlen 6,12,... aber bei 4 druckt er mir gar nichts und bei 19 druckt er mir jeden abgefahrenen schritt in der for-schleife, ich darf sie aber auch nicht unterbrechen... ahh ich verzweifel grade, hat jemand mal einen guten tipp??

Danke fuer jeden Hinweis!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

1. Es gibt `python` Tags, bitte nutze sie.
2. Warum wandelst du das modulo Ergebnis in ein `float` um? Floating point und Vergleiche mittels `==` sind ein No-Go, da Zahlen nicht exakt repraesentiert werden.
3. Schau doch mal, was `range(4/2, 2, -1)` ausgibt.
DunjaS
User
Beiträge: 6
Registriert: Dienstag 23. August 2011, 19:27

ah du hast absolut recht... bei i in range (2,2) kann ja nichts gescheites herauskommen!
Sorry das mit den python tags kannte ich nicht, werde ich aber benutzen falls ich mal wieder nicht weiterkomme... flaot() wurde eliminiert und ich ueberleg einfach mal noch eine weile und hoffe ich kann dich wieder fragen wenn ich irgendwo steckenbleibe.
lg
Antworten