完数的定义:
什么是因子?
假如整数n除以m,结果是无余数的整数n % m == 0
,那么我们称m就是n的因子.需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立.
什么是“完数”:
一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.
编程找出1000以内的所有完数。
- 实现找出完数功能:
环境:
Windows 10 64-bit, python == 3.6.4 , PyCharm CE == 2018.1
for i in range(2,1001): # 遍历1000以内的所有数,从2 开始
s = i # 把取出的数赋值给另一个变量s,用于与所有因子作差,若果减去所有的因子后结果为0,这个数即为完数。
for j in range(1,i): # 查找因子
if i % j == 0: # 找出因子
s -= j # 与因子作差
if s == 0: # 判断是否是完数
print(i) # 打印完数
- 完善:
for i in range(2,1001):
k = [] # 用于收集一个数的所有因子
n = -1 #
s = i
for j in range(1,i):
if i % j == 0:
n += 1
s -= j
k.append(j) # 收集所有因子
if s == 0:
print(i,":") # 打印完数
for j in range(n): # 遍历完数的所有因子
print(str(k[j]),end='+ ') # 打印出所有的因子
print(k[n]) # 打印