[프로그래머스] 77884. 약수의 개수와 덧셈

최대 1 분 소요

문제 링크

[프로그래머스] 77884. 약수의 개수와 덧셈


풀이 과정

약수의 개수가 홀수인 수는 그 수가 어떤 수의 제곱수라는 의미를 갖습니다. 예를 들어, 16은 4의 제곱수이기 때문에, 4라는 짝이 안맞는 약수가 하나 생기게 됩니다. 마찬가지로, 25는 5의 제곱수기 때문에, 5라는 짝이 안맞는 약수가 하나 생기게 됩니다. 따라서, left 이상 right 이하의 각 수 num에 대해, 해당 숫자가 어떤 수의 제곱수이면 약수의 개수가 홀수개로, 제곱수가 아니라면 짝수개로 판단할 수 있습니다.


코드

function solution(left, right) {
    let answer = 0;

    for (let num = left; num <= right; num++) {
        let sqrt = parseInt(Math.sqrt(num));

        if (sqrt * sqrt === num) {
            answer -= num;
        } else answer += num;
    }

    return answer;
}

console.log(solution(13, 17));
console.log(solution(24, 27));

댓글남기기