Title:Perfect Number 507
Difficulty:Easy
原题leetcode地址: https://leetcode.com/problems/perfect-number/
1. 注意for循环结束的位置
时间复杂度:O(n),一次一层for循环,循环最长为n/2。
空间复杂度:O(1),没有申请额外空间。
/**
* 注意for循环结束的位置
* @param num
* @return
*/
public static boolean checkPerfectNumber(int num) {
if (num <= 1) {
return false;
}
long sum = 1;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
sum += (num / i) + i;
}
}
return sum == num;
}