原题
We define the Perfect Number is a positive integer that is equal to the sum of all its positive divisors except itself.
Now, given an integer n, write a function that returns true when it is a perfect number and false when it is not.
Example:
Input: 28
Output: True
Explanation: 28 = 1 + 2 + 4 + 7 + 14
Note: The input number n will not exceed 100,000,000. (1e8)
解法
遍历.
Time: O(math.square(n))
Space: O(n)
代码
class Solution:
def checkPerfectNumber(self, num: int) -> bool:
# base case
if num <= 1:
return False
divisors = [1]
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
divisors.extend([i, num/i])
return num == sum(divisors)
判断完美数的算法实现
博客围绕判断完美数展开,完美数是指等于除自身外所有正因数之和的正整数。给出判断整数是否为完美数的问题,介绍了遍历的解法,时间复杂度为O(math.square(n)),空间复杂度为O(n),还给出了示例。
349

被折叠的 条评论
为什么被折叠?



