import java.util.*; public class Sieve implements Enumeration { private BitSet primes; private int index = 1; public Sieve(int n) { primes = new BitSet(n); for(int i = 1; i < n; i++) primes.set(i); for(int i = 2; i*i < n; i++) if (primes.get(i)) for(int j = 2*i; j < n; j += i) primes.clear(j); } public boolean hasMoreElements() { index++; int n = primes.size(); while (! primes.get(index)) if (++index > n) return false; return true; } public Object nextElement() { return new Integer(index);} public static void main(String[] args) { Sieve p = new Sieve(Integer.parseInt(args[0])); while (p.hasMoreElements()) System.out.println(p.nextElement()); } }