题目是显示输入数字之内的所有完全数
这个用多重循环,但是我在写的时候感觉写的很对,结果运行的没有输出结果,很烦,运行时间也有点长,求大家帮忙指点一下
把y=1放到循环里就行了,代码如下,如解决问题请点击一下采纳,谢谢:
x = eval(input())
for i in range(2, x, 1):
y = 1
for j in range(2, i):
if i%j==0:
y+=j
else:
y+=0
if i==y:
print(i)
if i>=x:
print('无')
break
x=eval(input())
#代码开始
for i in range(1,x):
y = 0
for j in range(1,i):
if i%j == 0 and j < i:
y+=j
if i==y:
print(i)
#代码结束
第7行后加个break,8,9行删除
第5行之前加y=0
你的y应该初始化为0啊,为什么初始化为1,不是没事找事吗
而且每次进入内层循环之前y都要清零,否则越加越大