题目
用函数判断素数,主程序批量输出
思路
本题把「判素数」封装成函数,主程序在区间内批量输出所有素数。
is_prime(n) 内用试除法;main 里用 for 枚举每个整数,若 is_prime(i) 为真则打印 i。
解题分析
is_prime 封装后区间扫描只是循环调用。与 21、22 题代码可共用同一函数,避免三份重复试除逻辑。
完整程序
#include <stdio.h>
static int is_prime(int n)
{
if (n < 2) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main(void)
{
int a, b;
if (scanf("%d %d", &a, &b) != 2) {
return 1;
}
for (int i = a; i <= b; i++) {
if (is_prime(i)) {
printf("%d\n", i);
}
}
return 0;
}
运行示例
输入:
2 10输出:
2
3
5
7