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

Rae-eun Yang·2022년 11월 1일
0

프로그래머스

목록 보기
49/83

문제 설명


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


제한 사항


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

입출력 예


nreturn
1228
56

입출력 예 설명

입출력 예 #1

12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.

입출력 예 #2

5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.


풀이 코드 (JavaScript)

function solution(n) {
    let answer = 0;
    
    if(n === 1) {
        return 1;
    }
    
    for(let i = 1; i * i <= n; i++) {
        if(n % i === 0) {
            answer += i + Math.floor(n / i);   
            if(i * i === n) {
                answer -= i;
            } 
        }
        
    }
    
    return answer;
}


풀이 코드 (Java)

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

profile
개발자 지망생의 벨로그

0개의 댓글