问题描述
输入一个自然数n,求小于等于n的素数之和
样例输入
2
样例输出
2
数据规模和约定
测试样例保证 2 <= n <= 2,000,000
代码如下:
#include<stdio.h>
int a[2000000]={0};
int main()
{
int n;
scanf("%d",&n);
int i,j;
for(i=2;i*i<=2000000;i++)
{
if(a[i]==1);
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;
}
printf("%lld\n",sum);
return 0;
}