You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将for循环与range输出转为列表并仅展示符合要求的质数内容?

代码修改方案

直接运行以下代码即可匹配你的预期输出:

def display_prime_numbers(maximum):
    # 输入合法性校验
    if maximum <= 2:
        print('Enter Number Greater Than 2')
        return
    # 生成目标区间列表并打印
    num_list = list(range(2, maximum + 1))
    print(num_list)
    print()
    # 逐个判断质数并输出
    for num in num_list:
        # 若需要将2纳入质数输出,删除下一行的continue,添加打印2的逻辑即可
        if num == 2:
            continue
        is_prime = True
        # 仅校验到平方根即可,减少不必要运算
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                is_prime = False
                break
        if is_prime:
            print(f'{num} is a prime number')

# 调用逻辑
if __name__ == "__main__":
    input_num = int(input("Enter Positive Integer Greater Than 2:"))
    display_prime_numbers(input_num)

核心修改点

  • 替换原代码循环逐个打印range元素的逻辑,直接用list()将range对象转为列表,打印后自动匹配你需要的方括号包裹的列表格式。
  • 重构质数判断逻辑:原代码仅对range的最后一个值做校验,改为对区间内每个数字单独校验,符合质数判定规则:大于1的自然数,除了1和自身外不存在其他正因数。
  • 补充输入校验后的终止逻辑,避免输入值小于等于2时后续无效代码仍执行。

内容的提问来源于stack exchange,提问作者jump

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:15:01