Scusate, ho sbagliato a ricostruire l'indentazione:
def sieveOfEratostenes2(n):
if n <= 2:
return []
sieve = list(range(3, n, 2))
top = len(sieve)
for si in sieve:
if si:
bottom = (si*si - 3) // 2
if bottom >= top:
break
sieve[bottom::si] = [None] * -((bottom - top) // si)
return [2] + list(filter(None, sieve))
def sieveOfEratostenes3(n):
if n <= 2:
return []
sieve = numpy.arange(3, n, 2, dtype = int)
top = len(sieve)
for si in sieve:
if si:
bottom = (si*si - 3) // 2
if bottom >= top:
break
sieve[bottom::si] = 0
return [2] + list(filter(None, sieve))
Ciao
--
Daniele
www.fugamatematica.blogspot.com
giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
_______________________________________________
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python