본문 바로가기
프로그래머스 문제풀이

프로그래머스 LEVEL1 : 약수의 합

by 공부합시다홍아 2020. 6. 25.

public 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;
    }
}

문제 해결 

n은 해당 코드에서 분자 역할을 합니다. 

n이 랜덤으로 입력 될 때 분모역할을 하는 i를 1~N까지 반복문을 통해 점점 증가시킵니다. 

그리고 반복문 안에서 조건문if를 사용하여 n을 i로 나누었을 때 나머지가 0이되는 값이 약수이므로

해당 값 i를 answer에 더해줍니다. 

예를 들어 n이 6이라 한다면 n을 나누었을 때 나머지가 0이 되는 값들 ( 1,2,3,6 )을 찾을 때까지 반복해주고, 6보다 크기가 커지면 더 이상 반복을 안하고, 1,2,3,6에 해당하는 값들을 answer에 더해줍니다. 

728x90