用筛选法求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");
n=0;
}
}
return 0;
}