/* standard "sieve of eratosthenes" generation of primes * * keyboard entered by frank gaude' 08/02/83 */ #include "stdio80.h" #define SIZE 8190 /* size of number array */ #define FALSE 0 #define TRUE 1 #define NTIMES 10 extern printf(),exit(); char flag[SIZE + 1]; main() /* compute primes using sieve of eratostenes */ { int i, j, k, count, prime; printf("10 iterations: "); for (i = 1; i <= NTIMES; i++) { /* do program ntimes */ count = 0; /* prime counter */ for (j = 0; j <= SIZE; j++) /* set all flags true*/ flag[j] = TRUE; for (j = 0; j <= SIZE; j++) { if (flag[j] == TRUE) { /* found a prime */ prime = j + j + 3; /* twice index + 3 */ printf("\n%d",prime); /* print prime */ for (k = j + prime; k <= SIZE; k += prime) flag[k] = FALSE; /* discard multiples */ count++; /* primes found */ } } } printf("%d primes.\n", count); exit(0); }