Author: Notus
Create: 2019-02-19
Update: 2019-02-19
Python 寻找完全数
环境
Python version: 3.7.1
代码如下
'''
寻找完全数: 判断输入的数是否是完全数。
完全数:是一个整数,其因数的和(不含本身)加起来就是数字本身,如
28 = 1 + 2 + 4 + 7 + 14
测试: 6, 28, 496, 8128 都是完全数
@Author: Notus
@Create: 2019-02-19
@Update: 2019-02-19
@Version: 0.1
'''
import sys
theNum = input('请输入一个数:')
try:
theNum = int(theNum)
except ValueError:
print("请输入一个整数!")
sys.exit()
# 因子
divisor = 1
# 因子的和
divisors = 0
# 求因子的和
while divisor < theNum:
if theNum % divisor == 0:
divisors += divisor
divisor += 1
if divisors == theNum:
print("{} 是完全数!\n".format(theNum))
else:
print("{0} 不是完全数!\n".format(theNum))
运行结果
C:\Users\Notus\Desktop>python a.py
请输入一个数:99
99 不是完全数!
C:\Users\Notus\Desktop>python a.py
请输入一个数:
请输入一个整数!
C:\Users\Notus\Desktop>python a.py
请输入一个数:28
28 是完全数!
C:\Users\Notus\Desktop>