#include #include typedef enum {PRIME, COMPOSITE} Primality; void GeneratePrimes(int bound) { Primality sieve[bound]; int test, mark; // Start by marking everything as prime. for (mark = 2; mark < bound; ++mark) { sieve[mark] = PRIME; } for (test = 2; test < bound; ++test) { switch (sieve[test]) { case PRIME: for (mark = test * 2; mark < bound; mark += test) { sieve[mark] = COMPOSITE; } printf("%d is prime\n", test); break; case COMPOSITE: printf("%d is composite\n", test); break; } } } int main() { GeneratePrimes(100); return EXIT_SUCCESS; }