Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "utils.h"
- std::vector<int> prime_sieve_list(int n) {
- int i = {2};
- int next_prime;
- std::vector<int> numbers(n);
- std::vector<int> primes;
- std::generate(numbers.begin(), numbers.end(), [&i] {return i++;});
- while (!numbers.empty()) {
- next_prime = numbers[0];
- numbers.erase(numbers.begin());
- primes.push_back(next_prime);
- auto it = numbers.begin();
- while (it != numbers.end()) {
- if (*it % next_prime == 0) {
- it = numbers.erase(it);
- } else {
- it++;
- }
- }
- }
- return primes;
- }
- using std::vector;
- int main()
- {
- vector<int> primes = prime_sieve_list(2000000);
- int sum = std::accumulate(primes.begin(),primes.end(),0);
- std::cout << sum << std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement