算法提高 素数求和

来源:互联网 发布:科比生涯平均数据 编辑:程序博客网 时间:2024/05/16 10:14

算法提高 素数求和
时间限制: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;}
0 0
原创粉丝点击