例1:
输入
5
输出
2
3
5
例2:
输入
20
输出
2
3
5
7
11
13
17
19
解决代码
#include <stdio.h>
int main() {
int divisor; // 除数
int n; // 给定值
scanf("%d",&n);
if (n == 2) {
printf("2\n");
} else {
printf("2\n");
for (divisor = 3; divisor <= n; divisor += divisor % 2 + 1){
// sub_divisor 子除数,用来判断除数是否是质数
for (int sub_divisor = 2; sub_divisor <= divisor; sub_divisor += sub_divisor % 2 + 1){
if (divisor % sub_divisor == 0){
break;
} else if (sub_divisor == divisor - 1 || sub_divisor == divisor - 2) {
printf("%d\n",divisor);
break;
}
}
}
}
return 0;
}
以上程序的边界条件 sub_divisor == divisor -1 || sub_divisor == divisor -2
可参考→C语言判断质数