#include #include #include using namespace std; int main() { const uint32_t size = 1 << 27; static uint32_t sieve[size]; for (uint32_t i = 0U; i < size; ++i) { sieve[i] = (uint32_t) -1; } for (uint32_t i = 2; i < 65536; ++i) { if ((sieve[i >> 5] & (1U << (i & 31))) == 0) { continue; } cout << "\r" << i << flush; for (uint32_t n = i + i; n > i; n += i) { sieve[n >> 5] &= ~(1U << (n & 31)); } } cout << "\n\n"; return EXIT_SUCCESS; }