用筛选法求100之内的素数

/*筛选法又称筛法,具体做法是:先把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=0;
         }
     }
    
     return 0;
    
}

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