我无法弄清楚代码中的错误以及为什么6没有显示为完美数字。
以下是我在10以下打印完美数字的代码:
s=0
for j in range(10):
for i in range(1,j):
if j%i==0:
s=s+i #for summing up the factors
if j==s:
print(j,'is a perfect number')
else:
print(j,'is not a perfect number')
输出是: 0是一个完美的数字 1不是一个完美的数字 2不是一个完美的数字 3不是一个完美的数字 4不是一个完美的数字 5不是一个完美的数字 6不是一个完美的数字 7不是一个完美的数字 8不是一个完美的数字 9不是一个完美的数字
答案 0 :(得分:0)
您需要在最外面的for循环中将sum重置为0:
for j in range(10):
s=0
for i in range(1,j):
if j%i==0:
s=s+i #for summing up the factors
if j==s:
print(j,'is a perfect number')
else:
print(j,'is not a perfect number')
打印输出:
0是一个完美的数字
1不是一个完美的数字
2不是一个完美的数字
3不是一个完美的数字
4不是一个完美的数字
5不是一个完美的数字
6是完美的数字
7不是一个完美的数字
8不是一个完美的数字
9不是一个完美的数字
答案 1 :(得分:0)
问题是你没有为每个整数重置s。
for j in range(10):
s=0
for i in range(1,j):
if j%i==0:
s=s+i #for summing up the factors
if j==s:
print(j,'is a perfect number')
else:
print(j,'is not a perfect number')
(0,'是一个完美的数字')
(1,'不是一个完美的数字')
(2,'不是一个完美的数字')
(3,'不是一个完美的数字')
(4,'不是一个完美的数字')
(5,'不是一个完美的数字')
(6,'是一个完美的数字')
(7,'不是一个完美的数字')
(8,'不是一个完美的数字')
(9,'不是一个完美的数字')