fork(1) download
  1. #include <vector>
  2. #include <iostream> // code by Jerry Coffin, 2014-01-04
  3. #include <time.h> // from http://stackoverflow.com/a/20917972/849891
  4.  
  5. unsigned long primes = 0;
  6.  
  7. int main() {
  8. // empirically derived limit to get 1,000,000 primes
  9. int number = 15485865;
  10.  
  11. clock_t start = clock();
  12. std::vector<bool> sieve(number,false);
  13. sieve[0] = sieve[1] = true;
  14.  
  15. for(int i = 2; i<number; i++) {
  16. if(!sieve[i]) {
  17. ++primes;
  18. for (int temp = 2*i; temp<number; temp += i)
  19. sieve[temp] = true;
  20. }
  21. }
  22. clock_t stop = clock();
  23.  
  24. std::cout.imbue(std::locale(""));
  25. std::cout << "Total primes: " << primes << "\n";
  26. std::cout << "Time: " << double(stop - start) / CLOCKS_PER_SEC << " seconds\n";
  27. return 0;
  28. }
Success #stdin #stdout 0.24s 5072KB
stdin
Standard input is empty
stdout
Total primes: 1,000,000
Time: 0.24 seconds