Primzahlen bis 192 ausgeben

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
rr11
User
Beiträge: 1
Registriert: Freitag 19. November 2021, 00:12

Hallo,

ich fange gerade neu mit Python an und habe eine Liste mit den Werten 2 und 3. In diese Liste möchte ich alle weiteren Primzahlen bis einschließlich 191 einfügen.
Dazu habe ich diesen Code geschrieben:

>>> primelist = [2,3]
>>> for n in range (4,192):
for i in range (2,n):
if n%i == 0:
break
else:
primelist.append(n)


>>> primelist = set(primelist)

In meine Liste werden aber auch nicht-Primzahlen eingefügt und ich weiß nicht woran das liegt bzw. an welcher Stelle der Fehler liegt. Habt ihr eine Idee, was ich falsch gemacht habe?

Liebe Grüße
Sirius3
User
Beiträge: 18375
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum wandelst Du die Liste zum Schluß in ein Set um? Wenn Du Dir das genauer anschaust, ist das schon ein erster Hinweis, was falsch läuft.

Übrigens ein schönes Beispiel, warum Typen in Variablennamen nichts verloren haben: `primelist` ist gar keine Liste mehr. Besserer Name wäre `primes`.
Benutzeravatar
__blackjack__
User
Beiträge: 14331
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@rr11: Geh die Schleife einfach mal Schritt für Schritt durch, überlege Dir was Du erwartest, und füge `print()`-Anweisungen ein um Deine Erwartungen zu überprüfen.
„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
Antworten