fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4.  
  5. vector<ll> sieve(ll n)
  6. {
  7. vector<bool> prime(n + 1, true);
  8. prime[0] = false;
  9. prime[1] = false;
  10. for (ll i = 2; i*i <= n; i++) {
  11.  
  12. // If prime[i] is not changed, then it
  13. // is a prime
  14. if (prime[i]) {
  15.  
  16. // Update all multiples of p
  17. for (ll j = i * i; j <= n; j += i)
  18. prime[j] = false;
  19. }
  20. }
  21.  
  22. // push all the primes into the vector ans
  23. vector<ll> ans;
  24. for (ll i = 0; i < n; i++)
  25. if (prime[i])
  26. ans.push_back(i);
  27. return ans;
  28. }
  29.  
  30.  
  31. int main() {
  32. ll n;
  33. cin>>n;
  34. vector<ll>ans = sieve(n);
  35. for(int x:ans)cout<<x<<" ";
  36. return 0;
  37. }
Success #stdin #stdout 0.01s 5288KB
stdin
50
stdout
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47