自己写的:
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是完美数
标签:False,factors,完美,Leedcode,列表,因子,num From: https://www.cnblogs.com/yyyjw/p/18206048