用筛选法求100以内的素数,筛选法是在2到100中,去除2,3,4,5,6,7,8,9,10的倍数,用c语言加注释
时间: 2023-09-27 19:12:35 浏览: 61
```
#include <stdio.h>
int main()
{
// 初始化数组,全部设为1,表示都是素数
int nums[101] = {1};
// 去除2到100中的偶数,即将偶数位置的数设为0
for(int i = 4; i <= 100; i += 2)
{
nums[i] = 0;
}
// 去除3到100中3的倍数,即将3的倍数位置的数设为0
for(int i = 3; i <= 100; i += 3)
{
if(i != 3) // 不去除3本身
{
nums[i] = 0;
}
}
// 去除5到100中5的倍数,即将5的倍数位置的数设为0
for(int i = 5; i <= 100; i += 5)
{
if(i != 5) // 不去除5本身
{
nums[i] = 0;
}
}
// 去除7到100中7的倍数,即将7的倍数位置的数设为0
for(int i = 7; i <= 100; i += 7)
{
if(i != 7) // 不去除7本身
{
nums[i] = 0;
}
}
// 输出剩余的素数
printf("100以内的素数为:\n");
for(int i = 2; i <= 100; i++)
{
if(nums[i] == 1)
{
printf("%d ", i);
}
}
return 0;
}
```
阅读全文