python1000以内的完数_Python - 1000以内的完全数

# 求1000以内的完全数有哪些

# 如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。

# 例如:

# 第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,

# 1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,

# 其余5个数相加,1+2+4+7+14=28。

def approximateNumber(num:int):

# 函数名已经已经限制了参数类型, 这里就不用做参数类型判断了

result = []#所有满足条件的结果存到 result 数组中

for divisor in range(1,num):#遍历 1-1000

#temp 中存放约数

temp = []

for dividend in range(1,divisor):#遍历 1-divisor 求所有约数

if divisor%dividend==0:#判断是不是约数

temp.append(dividend)#加入约数数组

tempSum = sum(temp)#求约数和

if tempSum == divisor:#判断这个数的约数和 是否等于 这个数

result.append(tempSum)#得到我们需要的结果,存到数组 result中

return result #返回结果

print(approximateNumber(1000))

# 打印结果: [6, 28, 496]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值