# L-3 MCS 275 Fri 18 Jan 2008 : sieve.py

# The sieve of Erathostenes with numpy arrays.

from numpy import *

def PrimeSieve(n):
   "returns all primes less than n"
   isprime = ones(n+1,bool)
   i = 2
   while(i < n/i):
      if isprime[i]:
         for j in range(i,n/i+1):
            isprime[i*j] = False
      i = i + 1
   L = []
   for i in range(2,n+1):
      if isprime[i]: L.append(i)
   return L

n = input('give n : ')
p = PrimeSieve(n)
print '#primes = ', len(p)
print ' primes = ', p
