首页 > 其他 > 详细

part4:素数判别

时间:2019-04-09 11:51:38      阅读:132      评论:0      收藏:0      [点我收藏+]
  • 法一:
  • √n判别
  • 这个的话就是暴力了吧,不过只能判别单个数是不是质数,而且很大的话会爆技术分享图片
  • //没有代码qwq(不想写
  • 法二:埃式筛法
  • O(nloglogn)判别
  • 直接代码好不啦:
  • int pri[100000],n,num;
    bool  yes[100010];
    sieve(int a)//筛
    {
        for(int i=1;i<=a;i++)yes[i]=1;
        for(int i=2;i<=a;i++){
            if(yes[i]){
                pri[++num]=i;
                for(int j=i*2;j<=a;j+=i)
                yes[j]=0;}
            }
    }
    int main() 
    {
        cin>>n;
        sieve(n);
        for(int i=1;i<=num;i++)
        cout<<pri[i]<<endl;
    }//伪代码qwq
  • 法三:线形筛:
  • int pri[10000],n,num;
    bool  yes[10010]; 
    int hs(int a){
        num=0;
        memset(yes,0,sizeof(yes)); 
        for(int i=2;i<=a;i++){
            if(!yes[i])pri[num++]=i; 
            for(int j=0;j<=num&&i*pri[j]<=a;j++){
            yes[i*pri[j]]=1;
            if(i%pri[j]==0)break;
            }
        }
    }
    int main() 
    {
        cin>>n;
        hs(n);
        for(int i=1;i<num;i++)
        cout<<pri[i]<<endl;
    }

    end-

part4:素数判别

原文:https://www.cnblogs.com/zhuier-xquan/p/10675881.html

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