I'd like you to:
int N=read_integer(); int factors[N]={0}; for (int P=2;P<N;P++) { if (factors[P]==0) { /* yes, it is prime */ write_integer(P); /* Mark all its multiples as not prime */ for (int M=P+P;M<N;M+=P) factors[M]=1; } }(Try this in NetRun now!)
N=4: 5.32 ns/call N=8: 12.2 ns/call N=16: 25.6 ns/call N=32: 51 ns/call N=64: 103 ns/call(Try this in NetRun now!)