题目

用函数判断素数,主程序批量输出

思路

本题把「判素数」封装成函数,主程序在区间内批量输出所有素数。

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