题目
编写一个独立的判素函数 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