首页 > 其他 > 详细

数论--质数

时间:2020-04-21 13:27:26      阅读:67      评论:0      收藏:0      [点我收藏+]

试除法判断质数

分解质因数

int get_primes(int n){
    for(int i = 2;i <= n/i;i++){
        if(n%i==0){
            int k = 0;
            while(n%i==0){
                k++;
                n/=i;
            }
            cout<<i<<" "<<k<<endl;
        }
    }
    if(n>1)  cout<<n<<" "<<1<<endl;
    puts("");
}

埃筛

埃筛,质数的倍数不是质数,埃筛利用这个性质进行筛选。

bool st[1000010];
void get_primes(int n){
    for(int i = 2;i<=n;i++){
        if(!st[i]){
            cout<<i<<endl;
            for(int j=i ;j<=n/i;j++){
                st[j*i]=true;
            }
        }
    }
}

线筛

数论--质数

原文:https://www.cnblogs.com/cqyinsist/p/12743750.html

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