1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#define TRUE 1 #define FALSE 0 #define SIZE 8190 int flags[SIZE+1]; main() { int i,prime,k,count,iter; for (iter=0;iter<10;iter++) { count=0; for (i=0;i<=SIZE;i++) flags[i]=TRUE; for (i=0;i<=SIZE;i++) { if (flags[i]) { prime=i+i+3; for (k=i+prime;k<=SIZE;k=k+prime) flags[k]=FALSE; count++; } } } printf( "%d primes\n", count ); }