Dragonball Online Goku Hand
본문 바로가기
알고리즘 도장깨기

프로그래머스 Lv.1 "약수의 합"

by 별의 코비 2022. 10. 30.
728x90

🔥 Programmers Lv.1 : 약수의 합


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

📎 조건 :
∙ n은 0 이상 3000이하인 정수입니다.


👉🏻 My answer

function solution(n) {
    let answer = 0;
    for(let i=0; i<=n; i++){
        if(n%i==0){
            answer+=i;
        }
    }
    return answer;
}
: n을 i로 나눈 값이 0이 됐을 때, 즉 n의 약수인 값 i를 다 더하기 위해 answer+=i;을 써준 후 return으로 출력하면 약수의 합을 구할 수 있습니다.


👉🏻 Another ways

function sumDivisor(num) {
    var root=Math.sqrt(num);
    var sum=num;
    for(var i=0;i<num;i++){
        if(i>root && num%i==0){
            sum=sum+i;
            console.log("큰수: "+sum);
        }else if(i<root && num%i==0){
             sum=sum+i;
            console.log("작은수: "+sum);
        }
    }
    return sum;
}
: 조건으로 num의 제곱근을 구하는 변수 root를 지정해서 약수가 num의 제곱근보다 작을때와 클때의 범위를 정해서 약수의 합을 구하였습니다.

댓글