(1) Mit Listen
Code: Alles auswählen
def sieben(zahl):
''' Eine erste Implementierung des
Sieb des Eratosthenes mit Listen
'''
liste = [2]
liste.extend([i for i in range(3,zahl+1,2)])
for z in range(2,zahl+1):
if z in liste:
exliste = [e * z for e in range(z,zahl+1) if e * z <= zahl]
# print(z, exliste)
if len(exliste) == 0:
break
else:
for e in exliste:
if e in liste:
liste.remove(e)
return liste
ergebnis = sieben(10000)
print(", ".join(map(str,ergebnis)),end=".\n")
Code: Alles auswählen
def sieben(zahl):
''' Eine erste Implementierung des
Sieb des Eratosthenes mit einem Woerterbuch
'''
keys = [2]
keys.extend([i for i in range(3,zahl,2)])
woerterbuch = {}
for key in keys:
woerterbuch[key] = True # True = prime (!)
for key in keys:
if woerterbuch[key] == True:
vielfache = [i * key for i in range(key,zahl+1) if i * key <= zahl]
# print(key,vielfache)
if len(vielfache) == 0:
break
else:
for item in vielfache:
if item in woerterbuch:
woerterbuch[item] = False
return [i for i in keys if woerterbuch[i] == True]
ergebnis = sieben(1000)
print(", ".join(map(str,ergebnis)),end=".\n")
Quelle