fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. const int N=1e7+5,M=1e7;
  5. int good[N],good1[N];
  6. vector<int>snt,snt1;
  7. void sieve()
  8. {
  9. for(int a=2;a<=1e7;a++){
  10. good[a]=1;
  11. }
  12. for(int a=2;a<=1e7;a++){
  13. if(good[a]){
  14. for(int b=a*2;b<=1e7;b+=a){
  15. good[b]=0;
  16. }
  17. }
  18. }
  19. for(int a=0;a*a<=1e14;a++){
  20. if(good[a]) snt.push_back(a);
  21. }
  22. }
  23. void sieve1()
  24. {
  25. for(int a=1e7+1;a<=2e7;a++){
  26. good1[a-M]=1;
  27. }
  28. for(int a=1e7+1;a<=2e7;a++){
  29. if(good1[a-M]){
  30. for(int b=a*2;b<=2e7;b+=a){
  31. good1[b-M]=0;
  32. }
  33. }
  34. }
  35. for(int a=1e7+1;a*a<=4e14;a++){
  36. if(good1[a-M]) snt.push_back(a);
  37. }
  38. }
  39. signed main()
  40. {
  41. ios_base::sync_with_stdio(false);
  42. cin.tie(0);
  43. cout.tie(0);
  44. int n;
  45. cin>>n;
  46. sieve();
  47. if(n>=5e5) sieve1();
  48. int sum=0;
  49. for(int a=0;a<n;a++){
  50. sum+=snt[a];
  51. }
  52. cout<<sum;
  53. }
  54.  
Success #stdin #stdout 0.4s 291724KB
stdin
1000000
stdout
6613788785687