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

Python使用while循环查找完全数代码无报错不输出问题排查

问题分析

你的代码陷入了无限循环,核心问题是i = i + 1的缩进位置错误,它被放在了if num % i == 0的判断分支内部,只有当i是num的因数时才会自增,一旦遇到不是因数的i,循环就会卡在当前的i值永远不会退出,自然不会打印后续结果。

修复方案

只要把i = i + 1调整到和if判断同级,放在while循环内部、if分支外面即可,修复后的完整代码如下:

# 使用WHILE循环查找完全数
num = int(input('输入任意正整数: '))
sum1 = 0
i = 1

if num <= 0:
    print('无效数字。')
else:
    while(i < num):
        if num % i == 0:
            sum1 = sum1 + i
        i = i + 1 # 调整缩进到while内部、if分支外
    
    if sum1 == num:
        print(num, "是完全数")
    else:
        print(num, "不是完全数")
验证说明
  • 输入6,程序会输出6 是完全数
  • 输入4,程序会输出4 不是完全数
  • 输入0或者负数,会输出无效数字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 08:09:03