Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.84 KB | None | 0 0
  1. #include "utils.h"
  2.  
  3. std::vector<int> prime_sieve_list(int n) {
  4.     int i =  {2};
  5.     int next_prime;
  6.     std::vector<int> numbers(n);
  7.     std::vector<int> primes;
  8.     std::generate(numbers.begin(), numbers.end(), [&i] {return i++;});
  9.     while (!numbers.empty()) {
  10.         next_prime = numbers[0];
  11.         numbers.erase(numbers.begin());
  12.         primes.push_back(next_prime);
  13.         auto it = numbers.begin();
  14.         while (it != numbers.end()) {
  15.             if (*it % next_prime == 0) {
  16.                 it = numbers.erase(it);
  17.             } else {
  18.                 it++;
  19.             }
  20.         }
  21.  
  22.     }
  23.     return primes;
  24. }
  25.  
  26. using std::vector;
  27.  
  28. int main()
  29. {
  30.     vector<int> primes = prime_sieve_list(2000000);
  31.  
  32.     int sum = std::accumulate(primes.begin(),primes.end(),0);
  33.  
  34.     std::cout << sum << std::endl;
  35.  
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement