题目:
对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。
给定一个 正整数 n
, 如果他是完美数,返回 True
,否则返回 False
思路:
1.遍历,从2开始一直到输入数的开平方,可以整除的数都相加。之所以一直到开平方是因为开平方的数后面的数字必然都是重复的,存在前面可以匹配相乘的数字
1.
class Solution:
def checkPerfectNumber(self, num: int) -> bool:
if num < 2:
return False
sum = 1
for i in range(2,int(num ** 0.5) +1):
if num % i == 0:
sum += i +num/i
if sum == num:
return True
else:
return False