본문 바로가기

Algorithm/Brute Force

(C++) - LeetCode (easy) 507. Perfect Number

반응형

https://leetcode.com/problems/perfect-number/description/

 

Perfect Number - LeetCode

Can you solve this real interview question? Perfect Number - A perfect number [https://en.wikipedia.org/wiki/Perfect_number] is a positive integer that is equal to the sum of its positive divisors, excluding the number itself. A divisor of an integer x is

leetcode.com

전수조사 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

제한이 1천만이므로 O(n)으로 해결할 수 있습니다. 인수들을 더해 저장할 변수 sum을 선언 후 0으로 초기화해줍니다.

📔 풀이과정

1. 1 ~ num - 1까지 for loop를 수행합니다.

2. 나누어 떨어진다면 인수이므로 sum에 해당 인수를 더해줍니다.

📔 정답 출력 | 반환

sum과 num이 같은지 여부를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    bool checkPerfectNumber(int num) {
        int sum = 0;
        for (int i = 1; i < num; i++) {
            if(num % i == 0) {
                sum += i;
            }
        }
        return sum == num;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.