fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define MAX 1000010
  4. bool primes[MAX];
  5. long long primesum[MAX];
  6. void seive(){
  7. memset(primes,0,sizeof(primes));
  8. primes[0]=1;
  9. primes[1]=1;
  10. for(long long i=2;i*i<MAX;i++){
  11. if(!primes[i]){
  12. for(long long j=i*i;j<MAX;j+=i)
  13. primes[j]=1;
  14. }
  15. }
  16. }
  17. void primessum(){
  18. for(int i=0;i<MAX;i++){
  19. primesum[i]=primesum[i-1];
  20. if(!primes[i])
  21. primesum[i]+=i;
  22. }
  23. }
  24. int main() {
  25. // your code goes here
  26. seive();
  27. primessum();
  28. int t;
  29. cin>>t;
  30. while(t--){
  31. int n;
  32. cin>>n;
  33. cout<<primesum[n-1]<<endl;
  34. }
  35. return 0;
  36. }
Success #stdin #stdout 0s 24024KB
stdin
1
50
stdout
328