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

编写输入N个数的质数判断程序(需用函数)无输出问题求助

问题分析与修复方案

嘿,我来帮你排查下代码为啥没输出还逻辑混乱的问题~你的代码里有几个关键的逻辑错误,导致程序根本没法正常运行:

核心问题点

  • 函数定义位置错误+递归滥用:你把isPrime函数定义在了for循环内部,而且函数里还递归调用了自己(a = isPrime(int(input()))),这会导致每次循环都重新定义函数,还会无限触发输入请求,完全偏离了“输入N个数字逐个判断”的需求。
  • 无效的判断逻辑:主代码里的if False:是恒假条件,不管怎样都会走else打印"YES",而且你根本没调用isPrime函数去检查输入的数字,等于判断逻辑完全没生效。
  • 输入流程混乱:原本应该先输入N,再输入N个数字,但你的代码在函数内部触发输入,导致输入顺序完全乱套。

修复后的代码

def isPrime(n):
    # 处理特殊情况
    if n == 2 or n == 3:
        return True
    if n < 2 or n % 2 == 0:
        return False
    # 从3开始,只检查奇数,到平方根为止
    for i in range(3, int(n**0.5) + 1, 2):
        if n % i == 0:
            return False
    return True

# 先输入要判断的数字个数N
count = int(input())
# 循环N次,逐个处理输入的数字
for _ in range(count):
    num = int(input())
    if isPrime(num):
        print("YES")
    else:
        print("NO")

代码说明

  1. 函数独立定义:把isPrime函数放在最外层,只定义一次,专注做质数判断的单一功能。
  2. 清晰的输入流程:先输入数字个数count,然后循环count次,每次输入一个数字,调用isPrime判断结果后输出对应的YES/NO。
  3. 正确的质数判断逻辑:保留了你原本正确的质数判断逻辑,去掉了无效的递归调用,确保每个输入的数字都能被正确检查。

内容的提问来源于stack exchange,提问作者Thế Hiển Nguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:17:34