利用筛选法将1-100的素数选择出来。
#include<stdio.h>
int main()
{
int a[101],i,j;
for(i=1;i<=100;i++)a[i]=i;
a[1]=0;
for(i=1;i<=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=1;i<=100;i++)
if(a[i]!=0)printf("%d\t",a[i]);
}
之前没想到呢,做完这题后发现,如果要找什么的话,可以先把不符合条件的给剔除(使a[j]=0),也正是所谓的筛选,最后再把符合条件的数再抽出来。