题目

编写一个独立的判素函数 is_prime,在主程序中遍历指定范围 [2, n],批量输出该范围内的所有素数。

输入格式:一行输入一个正整数 n(n ≥ 2)。

输出格式:按升序输出 2 到 n 之间的所有素数,以空格分隔,末尾换行。

数据范围与约定:2 ≤ n ≤ 2000。

思路与算法

1. 判素函数设计
单独编写 is_prime(x) 函数,试除检查到 i * i <= x。

2. 列表推导式筛选
主程序通过 [x for x in range(2, n + 1) if is_prime(x)] 批量收集并输出。

完整程序

a, b = map(int, input().split())

# 封装素数判定函数
def is_prime(x):
    if x < 2:
        return False
    for i in range(2, int(x ** 0.5) + 1):
        if x % i == 0:
            return False
    return True

# 批量扫描区间内的所有素数
for i in range(a, b + 1):
    if is_prime(i):
        print(i)

运行示例

输入:

2 10

输出:

2
3
5
7