• Source
    1. #include <iostream>
    2. #include <vector>
    3. using namespace std;
    4. const int N=1000000;
    5. bool mark[N+1000];
    6. int main()
    7. {
    8. vector<int> primes;
    9. vector<long long> sum;
    10. for(int i=2;i<=N/2;++i)
    11. if(mark[i]==false)
    12. {
    13. int b=i+i;
    14. while(b<=N)
    15. {
    16. mark[b]=true;
    17. b+=i;
    18. }
    19. }
    20. primes.push_back(2);
    21. sum.push_back(2);
    22. for(int i=3;i<=N;++i)
    23. if(mark[i]==false)
    24. {
    25. primes.push_back(i);
    26. sum.push_back( sum[sum.size()-1]+i);
    27. }
    28. int t;
    29. cin>>t;
    30. primes.push_back(10000000);
    31. for(int k=1;k<=t;++k)
    32. {
    33. int n;
    34. cin>>n;
    35. int i;
    36. for(i=0;primes[i]<=n;++i);
    37. cout<<sum[i-1]<<endl;
    38. }
    39.  
    40. }