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]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容