문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
perfect number는 자기 자신을 제외한 모든 양의 약수의 합과 같은 양의 정수이다. 정수 x의 약수 x를 모두 나눌 수 있는 정수이다.
주어진 정수 n에 대해, n이 perfect number이면 true를, 그렇지 않다면 false를 반환해라.
#1
Input: num = 28
Output: true
Explanation: 28 = 1 + 2 + 4 + 7 + 14
1, 2, 4, 7, 14는 모두 28의 약수이다.
#2
Input: num = 7
Output: false
class Solution {
public boolean checkPerfectNumber(int num) {
int sum = 0;
for(int i = 1; i * i < num - 1; i++){
if(num % i == 0){
if(i != (num / i)) sum += (num / i);
sum += i;
}
}
if(num == sum - num) return true;
return false;
}
}