题解 | #筛选法求素数#
筛选法求素数
https://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a
#include <stdio.h>
int main() {
int n,count=0;
while (scanf("%d", &n) != EOF) {
int isPrime[101]; // 声明一个数组,用于存储素数筛选结果,假设输入不大于100
for (int i = 2; i <= n; i++) {
isPrime[i] = 1; // 初始化数组,将所有数标记为素数
}
for (int i = 2; i <= n; i++) {
if (isPrime[i]) { // 如果当前数是素数
printf("%d ", i); // 输出素数
count++;//记录输出素数的个数
for (int j = 2 * i; j <= n; j += i) {
isPrime[j] = 0; // 将当前素数的倍数标记为非素数
}
}
}
printf("\n");
printf("%d\n", n-1-count);
}
return 0;
}

