[Edu-sig] Re: [Tutor] what? (late nite entertainment) (*)
Kirby Urner
urnerk at qwest.net
Thu Jan 29 03:51:00 EST 2004
> def primes(n):
> sieve, zeros = range(n), [0]*n
> sieve[:2]= 0,0
> i = 1
> while i*i < n:
> if sieve[i]: sieve[i*i:n:i]=zeros[i*i:n:i]
> i += 1
> return [p for p in sieve if p]
>
> Regards,
> Gregor
Very nice.
Here's a slight variation:
def primes(n):
sieve = [1]*n
sieve[:2]= 0,0
i = 1
while i*i < n:
if sieve[i]: sieve[i*i:n:i] = len(sieve[i*i:n:i]) * [0]
i += 1
return [p for p in range(n) if sieve[p]]
Kirby
More information about the Edu-sig
mailing list