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;
}