/** * @file * @brief Get list of prime numbers * @see primes_up_to_billion.cpp sieve_of_eratosthenes.cpp */ #include #include /** Generate an increasingly large number of primes * and store in a list */ std::vector primes(int max) { std::vector res; std::vector is_not_prime(max+1, false); for (int i = 2; i <= max; i++) { if (!is_not_prime[i]) res.emplace_back(i); for(int p: res) { if (i*p > max) break; is_not_prime[i*p] = true; if (i%p == 0) break; } } return res; } /** main function */ int main() { std::cout << "Calculate primes up to:\n>> "; int n = 0; std::cin >> n; std::vector ans = primes(n); for(int p: ans) std::cout << p << ' '; std::cout << std::endl; }