首页 > 编程语言 > 详细

用埃氏算法来素数求和

时间:2020-10-05 09:03:47      阅读:40      评论:0      收藏:0      [点我收藏+]
#include <iostream>

using namespace std;
//埃氏算法
int arr[2000001];
int main()
{
    long long n,ans=0;
    scanf("%lld",&n);

    for(int i=2;i<=n;i++){

        if(arr[i]==0){

            for(int j=2*i;j<=n;j+=i){
                arr[j] = 1;

            }
        }
    }
    for(int i=2;i<=n;i++){
        if(arr[i]==0){
            ans+=i;
        }
    }

    printf("%lld",ans);
    return 0;
}

0和1不是素数,从2到n依次将最小的数的倍数去掉,剩下的就是素数

用埃氏算法来素数求和

原文:https://www.cnblogs.com/Guser/p/13768794.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!