알고리즘

[프로그래머스] 약수의 합(Java)

muerha 2024. 10. 29. 15:52

 

 

 

 

 


 

 

 

나의 풀이

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

 

 

 

다른 사람의 풀이

class SumDivisor {
    public int sumDivisor(int num) {
        int answer = 0;
        for (int i = 1; i <= num / 2; i++) {
            if (num % i == 0) {
                answer += i;
            }
        }
        return answer + num;
    }
}

 

num / 2보다 큰 수는 약수가 될 수 없기 때문에 num의 절반까지만 반복한다.

모든 약수의 합이므로 본인 num도 더함.