Leedcode-完美数

自己写的:

复制代码
class Solution:
    def checkPerfectNumber(self, num: int) -> bool:
        # 如果数字是1,则直接返回False,因为1不是完美数
        if num == 1:
            return False
        
        # 初始化一个空的列表来存储因子
        factors = []
        
        # 遍历从1到该数字平方根的所有整数
        for i in range(1, int(num ** 0.5) + 1):
            # 如果当前数i是num的因子
            if num % i == 0:
                # 将i添加到因子列表中
                factors.append(i)
                
                # 如果i不是num的平方根,将num // i添加到因子列表中
                # 确保因子num // i不等于num自身
                if i != 1 and i != num // i:
                    factors.append(num // i)
        
        # 计算因子之和,并与num进行比较
        # 如果因子之和等于num,则num是完美数,返回True
        # 否则返回False
        return num == sum(factors)

# 示例使用
number = 28
solution = Solution()
print(solution.checkPerfectNumber(number))  # 输出True,因为28是完美数
复制代码

 

posted @   Junior_bond  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示