[Edu-sig] Re: [Tutor] what? (late nite entertainment) (*)

Kirby Urner urnerk at qwest.net
Fri Mar 25 03:54:54 CET 2005


> 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



_______________________________________________
Tutor maillist  -  Tutor at python.org
http://mail.python.org/mailman/listinfo/tutor



More information about the Edu-sig mailing list