// Program: eratosthenes.C
// Calculate prime numbers in {2,...,999} using
// Eratosthenes' sieve.
#include
int main()
{
// definition and initialization: provides us with
// Booleans crossed_out[0],..., crossed_out[999]
bool crossed_out[1000];
for (unsigned int i = 0; i < 1000; ++i)
crossed_out[i] = false;
// computation and output
std::cout << "Prime numbers in {2,...,999}:\n";
for (unsigned int i = 2; i < 1000; ++i)
if (!crossed_out[i]) {
// i is prime
std::cout << i << " ";
// cross out all proper multiples of i
for (unsigned int m = 2*i; m < 1000; m += i)
crossed_out[m] = true;
}
std::cout << "\n";
return 0;
}