首页 > 其他 > 详细

用筛选法求100之内的素数

时间:2020-05-26 22:46:04      阅读:53      评论:0      收藏:0      [点我收藏+]

/*筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。
1不是质数,也不是合数,要划去。第二个数2是质数留下来,
而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,
把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,
把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,
就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。*/
#include <stdio.h>
#include <math.h>
int main()
{
    int i,j,a[101],n;
    for(i=1;i<=100;i++)
    a[i]=i;
    a[1]=0;//第一个数排除在外
    for(i=2;i<sqrt(100);i++)
    for(j=i+1;j<=100;j++)
    {
        if(a[i]!=0&&a[j]!=0) //必需要有
        if(a[j]%a[i]==0)
        a[j]=0;
     }
     for(i=2;i<=100;i++)
     {
         if(a[i]!=0)
         {
             printf("%5d",a[i]);
             n++;
         }
        if(n==10)
        {
            printf("\n");
            n=0;
         }
     }
    
     return 0;
    
}

技术分享图片

用筛选法求100之内的素数

原文:https://www.cnblogs.com/LiQingXin/p/12968359.html

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