用C编写程序,用筛选法求解200以内,所有素数
时间: 2024-02-15 12:03:29 浏览: 90
好的,以下是用C语言编写的用筛选法求解200以内所有素数的程序:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_NUM 200
int main() {
bool is_prime[MAX_NUM + 1];
int i, j;
// 初始化数组
for (i = 2; i <= MAX_NUM; i++) {
is_prime[i] = true;
}
// 筛选法求素数
for (i = 2; i * i <= MAX_NUM; i++) {
if (is_prime[i]) {
for (j = i * i; j <= MAX_NUM; j += i) {
is_prime[j] = false;
}
}
}
// 输出素数
printf("2 ");
for (i = 3; i <= MAX_NUM; i += 2) {
if (is_prime[i]) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
程序的思路是用一个 bool 类型的数组 is_prime 来表示每个数字是否为素数,首先将 is_prime 数组中所有元素初始化为 true,然后从 2 开始遍历,如果当前数字是素数,则将其倍数对应的 is_prime 数组元素设为 false,最后输出 is_prime 数组中为 true 的元素即可。
阅读全文