/* Sieve of Eratosthenes benchmark from BYTE, Sep. '81, pg. 186. Compile by: A>cc1 sieve.c -e1000 All variables have been made external to speed them up; other than that one change, the program is identical to the one used in the BYTE benchmark....while they got an execution time of 49.5 seconds and a size of 3932 bytes using v1.32 of the compiler, ******** v1.45 clocks in at * 15.2 * seconds with a size of 3718 bytes! ******** */ #define TRUE 1 #define FALSE 0 #define SIZE 8190 #define SIZEPL 8191 char flags[SIZEPL]; int i,prime,k,count,iter; main() { printf("Hit return to do 10 iterations: "); getchar(); for (iter = 1; 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; k = i + prime; while (k <= SIZE) { flags[k] = FALSE; k += prime; } count++; } } } printf("\7\n%d primes.\n",count); }  .