프로그래머스 - 약수의 합

윤민선·2026년 8월 5일

프로그래머스

목록 보기
62/66
post-thumbnail

문제 설명

정수 n이 주어질 때, n의 모든 약수의 합을 반환하는 문제

n = 12 → 약수: 1, 2, 3, 4, 6, 12 → 합계: 28
n = 5  → 약수: 1, 5              → 합계: 6

접근 방법

약수는 n을 나눴을 때 나머지가 0인 수이다. 1부터 n까지 올라가면서 n % i == 0인 경우만 합산한다.

n = 12 일때
i=1  → 12 % 1 = 0  → 약수 ✅ answer=1
i=2  → 12 % 2 = 0  → 약수 ✅ answer=3
i=3  → 12 % 3 = 0  → 약수 ✅ answer=6
i=4  → 12 % 4 = 0  → 약수 ✅ answer=10
i=5  → 12 % 5 = 2  → 약수 ❌
i=6  → 12 % 6 = 0  → 약수 ✅ answer=16
i=12 → 12 % 12 = 0 → 약수 ✅ answer=28

구체적으로 정리한 풀이 흐름:

  1. 1부터 n까지 반복
  2. n % i == 0이면 약수 → answer에 누적 합산
  3. 결과 반환

최종 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
 
        for (int i = 1; i <= n; i++) {
            if (n % i == 0) {
                answer += i;
            }
        }
 
        return answer;
    }
}

실행 결과

0개의 댓글