题目:
对于一个正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为 「完美数」。
给定一个整数n,如果是完美数,返回 true,否则返回 false
解题思路:
通过取余得出所有正因子
每一次取余把正因子对加入sum
并且更新最大遍历次数减少至正因子对中较大的那个数
def Solution(num:int):
sum = 0
if num > 2:
for i in range(2,num):
if num % i ==0 :
sub = (num/i)-i
if sub > 0:
sum += i
sum += num//i
lenth= num//i
if i > lenth:
break
if int(sum)+1 == num:
print(True)
return True
else:
print(False)
return False
else:
return False
解题总结:
执行用时:48 ms, 在所有 Python3 提交中击败了60.04%的用户
内存消耗:14.8 MB, 在所有 Python3 提交中击败了39.96%的用户
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/roman-to-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。