
March 24, 2005
6:54 p.m.
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@python.org http://mail.python.org/mailman/listinfo/tutor