算法提高 素数求和

xiaoxiao2021-02-28  88

算法提高 素数求和 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述   输入一个自然数n,求小于等于n的素数之和 样例输入 2 样例输出 2 数据规模和约定   测试样例保证 2 <= n <= 2,000,000

此题如果使用一般的方法,必定超时,故使用筛选法

#include<iostream> 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) ; else { for(j=i+i;j<=2000000;j+=i) 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; }
转载请注明原文地址: https://www.6miu.com/read-60086.html

最新回复(0)