[LeetCode] Perfect Number

아르당·2026년 1월 23일

LeetCode

목록 보기
107/134
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

perfect number는 자기 자신을 제외한 모든 양의 약수의 합과 같은 양의 정수이다. 정수 x의 약수 x를 모두 나눌 수 있는 정수이다.

주어진 정수 n에 대해, n이 perfect number이면 true를, 그렇지 않다면 false를 반환해라.

Example

#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

Constraints

  • 1 <= num <= 10^8

Solved

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;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글