자료구조 및 알고리즘/JavaScript Practice

JS Practice) 프로그래머스 Lv.1 : 약수의 합

Ryomi 2023. 5. 14. 09:07
728x90
반응형

 

 

약수의 합

문제설명 :

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

 

제한 사항

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

 

입출력 예

n result
12 28
5 6

 

접근

:  while문을 사용해 n의 약수를 구해 answer에 더해주었다. 

function solution(n) {
    let answer = 0
    let i = 1
    while(i <= n){
        if(n % i === 0){
            answer += i
        }
        i++
    }
    return answer
}

 

solution

function solution(n) {
    var answer = 0;
    let i;
    for (i = 1; i <= Math.sqrt(n); i++){
        if (!(n % i)) {
            answer += (i + n / i);
        }
    }
    i--;
    return (i === n/i) ? answer-i : answer;
}
728x90
반응형