筛选MAXNUM-1以内的素数
#include <stdio.h>
int main()
{
const int MAXNUM = 101; //最大数为101,0号不使用以防止发生错误
int NotPrime[MAXNUM] = {1,1}; //注意此处1-i不是素数,0-i是素数,假设目前都是素数,以便筛除
for (int i = 2; i < MAXNUM; i++) //每次都是找到最小的是素数的数字,最后一个单元是[MAXNUM-1]
{
if (NotPrime[i]==0) //找到一个最小的素数,开始进行操作标记
{
for (int j=2; i*j < MAXNUM; j++) //i的j倍标记为1
{
NotPrime[i*j] = 1;
}
}
}
for (int j = 2; j < MAXNUM; j++)
{
if (!NotPrime[j])
{
printf("%d\n",j);
}
}
return 0;
}
输出shell效果如下图所示