public class byteSieve {
	static final int TSIZE = 8192;
	public static void main(String args[]) {
		int NUM = Integer.parseInt(args[0]);
		byte [] flags = new byte[TSIZE + 1];
		int count = 0;
		System.out.print(NUM + " iterations \n");
		long t1 = System.currentTimeMillis();
		while (NUM-- > 0) {
			count = 0;
			for (int i=0; i <= TSIZE; i++) {
				flags[i] = 1;
			}
			for (int i=0; i <= TSIZE; i++) {
				if (flags[i] == 1) {
					int prime = i + i + 3;
					int k = i + prime;
					while( k <= TSIZE) {
						flags[k] = 0;
						k = k + prime;
					}
					count++;
				}
			}
		}
		long t2 = System.currentTimeMillis();
		System.out.print(count + " primes \n");
		System.out.print((t2 - t1) + " milliseconds \n");
	}
}