c语言筛选法输出100以内的素数
时间: 2023-07-13 13:25:17 浏览: 118
c语言找出100以内的素数
下面是一种使用筛选法计算 100 以内素数的 C 语言程序:
```c
#include <stdio.h>
#include <stdbool.h>
int main() {
const int max = 100;
bool isPrime[max+1];
for (int i = 2; i <= max; i++) {
isPrime[i] = true;
}
for (int i = 2; i * i <= max; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= max; j += i) {
isPrime[j] = false;
}
}
}
for (int i = 2; i <= max; i++) {
if (isPrime[i]) {
printf("%d ", i);
}
}
return 0;
}
```
程序中的 `isPrime` 数组用于记录某个数字是否为素数,初始化为 `true`。然后从 2 开始,如果它是素数,就把它的倍数都标记为非素数,最后输出所有标记为素数的数字。
这个算法的时间复杂度为 O(nloglogn),比试除法更优秀。
阅读全文