ich fange gerade an mich ein wenig mit Python zu beschäftigen und programmiere dazu die Beispiele aus http://projecteuler.net/.
Aktuell versuche ich mich am Problem 10 und habe nun den Sieb des Eratosthenes Algorithmus auf Python übertragen und suche nun nach Optimierungsmöglichkeiten.
Code: Alles auswählen
def primeSieve(limit):
import math
sievebound = (limit-1) // 2
sieve = [False]*(sievebound+1)
crosslimit = (math.floor(math.sqrt(limit))-1) // 2
for i in range(1,crosslimit+1):
if not sieve[i]:
for j in range(2*i*(i+1),sievebound+1,2*i+1):
sieve[j] = True
#Liste mit Primzahlen wird erzeugt
primes =[2]
for i in range(1, sievebound+1):
if not sieve[i]:
primes.append(2*i+1)
return primes
filter(isTrue,sieve), müsste dann aber noch auf den Index der True Werte zugreifen können.