编写Python程序实现区间质数打印及分类功能
Python 打印指定区间内的所有质数
需求说明
定义接收两个整数参数(start、end)的函数,筛选区间内的质数并打印。
修正后的代码
def is_prime(n): # 质数必须大于1 if n <= 1: return False # 特殊处理唯一的偶质数2 if n == 2: return True # 偶数直接排除 if n % 2 == 0: return False # 仅检查到n的平方根,减少循环次数提升效率 for i in range(3, int(n**0.5) + 1, 2): if n % i == 0: return False return True def print_primes(start, end): # 遍历区间内所有数(包含end),筛选并打印质数 for num in range(start, end + 1): if is_prime(num): print(num) # 修复原代码的语法错误,获取用户输入 a = int(input("Start value: ")) b = int(input("End value: ")) print_primes(a, b)
关键优化说明
- 质数判断逻辑修正:原代码的循环范围错误会导致所有数被判定为非质数,优化后通过边界判断、偶质数单独处理、缩小循环范围,准确且高效地识别质数
- 区间范围修正:原代码
range(start, end)不包含end值,调整为range(start, end + 1)确保覆盖完整区间 - 语法修复:补全了原代码输入语句缺失的右括号,避免运行报错
内容的提问来源于stack exchange,提问作者Parvathi Pradeep
相关产品推荐
相关产品推荐

