在 Python 3 中打印小于 10 的完全数
To print perfect numbers below 10 in Python 3
我无法弄清楚代码中有什么问题以及为什么 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 不是一个完美的数字
您需要在最外层的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不是完美数
问题是您没有为每个整数重置 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, 'is a perfect number')
(1, 'is not a perfect number')
(2, 'is not a perfect number')
(3, 'is not a perfect number')
(4, 'is not a perfect number')
(5, 'is not a perfect number')
(6, 'is a perfect number')
(7, 'is not a perfect number')
(8, 'is not a perfect number')
(9, 'is not a perfect number')
我无法弄清楚代码中有什么问题以及为什么 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 不是一个完美的数字
您需要在最外层的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不是完美数
问题是您没有为每个整数重置 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, 'is a perfect number')
(1, 'is not a perfect number')
(2, 'is not a perfect number')
(3, 'is not a perfect number')
(4, 'is not a perfect number')
(5, 'is not a perfect number')
(6, 'is a perfect number')
(7, 'is not a perfect number')
(8, 'is not a perfect number')
(9, 'is not a perfect number')