fork download
  1. #include <iostream>
  2.  
  3. const int NMIN = 10000000, NMAX = 100000000;
  4. char notprime[NMAX]; // Mark the composite numbers
  5.  
  6. int main() {
  7. // Sieve all primes
  8. // We only need to sieve up to sqrt(MAXN)
  9. for (int i = 2; i*i <= NMAX; ++i) {
  10. if (notprime[i]) continue;
  11.  
  12. // Mark all multiples starting with i^2
  13. for (int j = i*i; j <= NMAX; j += i) notprime [j] = 1;
  14. }
  15.  
  16. // Count primes from NMIN to NMAX
  17. int cntprimes = 0;
  18. for (int i = NMIN; i <= NMAX; ++i) {
  19. if (!notprime[i]) ++cntprimes;
  20. }
  21.  
  22. std::cout << cntprimes << "\n";
  23. return 0;
  24. }
Success #stdin #stdout 1.06s 101308KB
stdin
Standard input is empty
stdout
5096876