약수의 합

문제 설명

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

 

제한 조건

  • n은 0 이상 3000이하인 정수입니다.

입력값

n : 12, 5

return : 28, 6

 

Solution

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

본인보다 작거나 같은 수 중에 본인이 그 수로 나누어떨어진다면 그 수는 약수라고 할 수 있다.

따라서 정답을 담아줄 answer 변수를 정수형으로 선언하고, 입력받은 n부터 1까지 하나하나씩 약수의 조건에 부합하는지 확인했다.

for 반복문을 이용해서 12부터 11, 10,..., 1까지 총 12번을 반복해서 약수라면 answer 변수에 계속 더해주고, 아니라면 넘어가는 방식으로 정답을 구했다.

+ Recent posts