끄적끄적 코딩일지

[Programmers]약수의 합(난이도:★★★★) 본문

알고리즘

[Programmers]약수의 합(난이도:★★★★)

BaekGyuHyeon 2022. 5. 16. 20:34

https://programmers.co.kr/learn/courses/30/lessons/12928

 

코딩테스트 연습 - 약수의 합

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수

programmers.co.kr

class Solution {
    public int solution(int n) {
        return solutionA(n);
    }
    public int solutionA(int n){
    	// n == 1이나 0이면 약수의 개수는 자기 자신이다.
        if(n == 1 || n == 0)
            return n;
        int sum = n+1;
        for(int i = 2; i < n; i++){
            if(n % i == 0)
                sum+= i;
        }
        return sum;
    }
}