素数之和(筛法求素数)
1244: 算法提高 素数求和 时间限制: 1 Sec 内存限制: 256 MB 提交: 4 解决: 1 [ 提交 ][ 状态 ][ 讨论版 ] 题目描述 输入一个自然数n,求小于等于n的素数之和 输入 2 输出 2 样例输入 2 样例输出 2 提示 数据规模和约定 测试样例保证 2 <= n <= 2,000,000 来源 #include<iostream> #include<string.h> #include<math.h> using namespace std; int a[2000000]={0}; int main() { int n,i,j; cin>>n; for(i=2;i<=2000000;i++) { if(a[i]==1) continue; else { for(j=i+i;j<=2000000;j+=i) { if(j%i==0) a[j]=1;} } } long long int sum=0; for(i=2;i<=n;i++) { if(a[i]==0) { sum+=i; } } cout<<sum<<endl; return 0; } 1244: 算法提高 素数求和 时间限制: 1 Sec 内存限制: 256 MB 提交: 4 解决: 1 [ 提交 ][ 状态 ][ 讨论版 ] 题目描述 输入一个自然数 n ,求小于等于 n 的素数之和