#include <stdio.h>
#include <stdbool.h>
int main() {
bool is_prime[101];
for (int i = 0; i <= 100; i++) {
is_prime[i] = true;
}
is_prime[0] = is_prime[1] = false;
for (int i = 2; i * i <= 100; i++) {
if (is_prime[i]) {
for (int j = i * i; j <= 100; j += i) {
is_prime[j] = false;
}
}
}
printf("100以内的素数有:\n");
for (int i = 2; i <= 100; i++) {
if (is_prime[i]) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
代码说明:
- 使用埃拉托斯特尼筛选法来查找100以内的所有素数。
- 初始化一个布尔数组`is_prime`,假设所有数字都是素数。
- 将0和1标记为非素数。
- 从2开始,逐一检查每个数,如果是素数,将其所有倍数标记为非素数。
- 最后,输出所有标记为素数的数字。