用筛选法求100以内的素数,筛选法是在2到100中,去除2,3,4,5,6,7,8,9,10的倍数,用c语言加注释
时间: 2023-09-27 08:12:36 浏览: 35
```c
#include <stdio.h>
int main()
{
int is_prime[101] = {0}; // is_prime数组用于标记是否是素数,0表示是素数,1表示不是素数
// 2和3一定是素数
is_prime[2] = 0;
is_prime[3] = 0;
// 去除2的倍数
for (int i = 2 * 2; i <= 100; i += 2)
{
is_prime[i] = 1;
}
// 去除3的倍数
for (int i = 3 * 2; i <= 100; i += 3)
{
is_prime[i] = 1;
}
// 去除5的倍数
for (int i = 5 * 2; i <= 100; i += 5)
{
is_prime[i] = 1;
}
// 去除7的倍数
for (int i = 7 * 2; i <= 100; i += 7)
{
is_prime[i] = 1;
}
// 输出素数
for (int i = 2; i <= 100; i++)
{
if (is_prime[i] == 0)
{
printf("%d ", i);
}
}
return 0;
}
```
注:以上程序只演示了筛选法的基本思想,实际应用中还需要考虑优化算法,例如只筛选奇数,只需对3、5、7、11、13等质数的倍数进行筛选等。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)