c语言求出100以内的所有素数
时间: 2023-10-30 08:08:06 浏览: 146
可以使用埃氏筛法来求解100以内的所有素数。具体步骤如下:
1. 创建一个长度为101的布尔数组,用来标记每个数字是否为素数,初始值都为true。
2. 从2开始,遍历到sqrt(100),对于每个素数p,将数组中p的倍数标记为false。
3. 遍历数组,输出所有值为true的下标,即为100以内的所有素数。
以下是C语言代码实现:
```
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
int main() {
bool is_prime[101];
int i, j;
// 初始化数组
for (i = 2; i <= 100; i++) {
is_prime[i] = true;
}
// 埃氏筛法
for (i = 2; i <= sqrt(100); i++) {
if (is_prime[i]) {
for (j = i * i; j <= 100; j += i) {
is_prime[j] = false;
}
}
}
// 输出素数
printf("100以内的素数有:\n");
for (i = 2; i <= 100; i++) {
if (is_prime[i]) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
--相关问题--:
阅读全文