Ich implementiere das Sieb des Eratosthenes auf eine Art und Weise,die Ich bis jetzt auch nach längerer Recherche nicht gefunden habe.
Ich habe in diesem Forum viele Implementierungen gesehen,welche True und False genutzt haben,da Ich,jedoch ein blutiger Anfänger bin habe Ich da nicht durchgeblickt.Erst recht nicht bei den Optimierungen des Siebes von Eratosthenes.Deshalb möchte Ich eine Art der implementierung machen,welche sich die Positionen der Zahlen innerhalb der Liste zunutzemacht.
Code: Alles auswählen
def sieb_des_eratosthenes(obere_Grenze):
a = list(range(2, obere_Grenze + 1))
# Erstellt eine Liste potenzieller Primzahlen
teiler = a[0]
# Der Teiler ist die kleinste Zahl in der Liste
while a.index(teiler) != -1:
# Die Schleife bricht ab,wenn die größte Zahl eine Primzahl ist
while obere_Grenze > teiler:
if obere_Grenze % teiler == 0:
del a[a.index(obere_Grenze)]
# durchläuft alle Zahlen in der Liste
obere_Grenze -= 1
# Der Teiler ist die nächste Primzahl bzw. die nächstgrößere
teiler = a[0 + 1]
return a
# Testlauf
sieb_des_eratosthenes(20)