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

Narcoker·2022년 9월 16일
0

코딩테스트

목록 보기
28/152
post-custom-banner

문제 설명

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

제한 사항

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

입출력 예

풀이

i 부터 n의 제곱근 까지 for문을 반복한다.
만약 n이 i로 나누어 떨어진다면 i와 나눈 값을 더한다.
n이 제곱 수 인 경우, 예를 들어 25 인 경우 1+5+5+25 가 최총값이 되므로
제곱근 값을 한번 빼서 반환한다.

function solution(n) {
    let answer = 0;
    let max = Math.sqrt(n);
    for(let i = 1; i<=max;  i++){
        if(n%i === 0)
            answer = answer + i + n/i;
    }
    return Number.isInteger(max)? answer - max: answer;
}
profile
열정, 끈기, 집념의 Frontend Developer
post-custom-banner

0개의 댓글