fork(2) download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. void sieve(int n)
  7. {
  8. int i, j;
  9. vector<bool> is_prime(n+1);
  10.  
  11. // initialize the list of primes to include all
  12. // numbers from 2 to n
  13.  
  14. is_prime[0] = false;
  15. is_prime[1] = false;
  16. for (i=2; i<=n; i++)
  17. is_prime[i] = true;
  18.  
  19. // do the scratching out
  20.  
  21. for (i=2; i<=n; i++)
  22. if (is_prime[i])
  23. for (j=2*i; j<=n; j+=i)
  24. is_prime[j] = false;
  25.  
  26. // print out the primes
  27.  
  28. for (i=0; i<=n; i++)
  29. if (is_prime[i])
  30. cout << i << endl;
  31. }
  32.  
  33. int main()
  34. {
  35. int n;
  36.  
  37. // read n from input
  38.  
  39. cin >> n;
  40.  
  41. // find all primes <= n and print them out
  42.  
  43. sieve(n);
  44.  
  45. // return from main with 0
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0.02s 2816KB
stdin
10
stdout
2
3
5
7