筛法求素数
一般:
#include<stdio.h>
int main()
{
int a[100], i, j;
for(i = 2; i < 100; i++)
a[i] = 1;//令2-99都为1
for(i = 2; i < 100/2; i++)//2 - 到 范围的一半的所有倍数
{
if(a[i] == 1)//还未被筛 素数不会被筛 合数会被筛
{
for(j = 2*i; j < 100; j=j+i)//刚开始两倍后三倍四倍
{
a[j] = 0;//把下标为合数的数组都为0
}
}
}
for(i = 2; i < 100; i++)
{
if(a[i]!=0)//数组不为0 说明不是合数 则把这些素数打出来
printf("%d ",i);
}
return 0;
}