LeetCode题解:完美数
2022-03-25 本文已影响0人
搬码人
题目描述
给定一个正整数,如果它和除了它自身以外的左右正因子之和相等,我们称之为完美数。
给定一个正整数n,如果是完美数,返回true;否则返回false。
示例
- 示例1
输入:num = 28
输出:true
解释:28 = 1 + 2 + 4 + 7 + 14 - 示例2
输入:num = 7
输出:false
思路方法

class Solution {
public boolean checkPerfectNumber(int num) {
if(num==1){
return false;
}
int sum =1;
for(int d=2;d*d<=num;d++){
if(num%d==0){
sum+=d;
if(d*d<num){
sum+=(num/d);
}
}
}
return sum==num;
}
}
复杂度分析
- 时间复杂度:O(√num)。
- 空间复杂度:O(1)。