#include "sieve.h" namespace sieve { using namespace std; primes_t primes(size_t n) { primes_t result; vector sieve(n, false); for (size_t p = 2, p2 = 2*2; p2 < n; ++p, p2 = p*p) { if (sieve[p]) continue; for (size_t i = p2; i < n; i += p) { sieve[i] = true; } } for (size_t i = 2; i < n; ++i) if (!sieve[i]) result.push_back(i); return result; } }