这道题一开始又又又又超时了,我迭代到num/2,这样是超时的。
然后看了题解,发现确实,有一个小的就会存在一个大的,这样只要解决n**2=num的特殊情况,就可以只迭代到sqrt(num)了
class Solution: def checkPerfectNumber(self, num: int) -> bool: if num<=1: return False temp=1 min_num=2 while min_num**2<=num: if num%min_num==0: max_num=int(num/min_num) temp+=min_num temp+=max_num if min_num==max_num: temp-=max_num min_num+=1 return temp==num
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)