[프로그래머스 Lv1] 약수의 개수와 덧셈 - (Javascript)

eeeyooon·2023년 12월 20일
0

약수의 개수와 덧셈

문제 링크

📩 문제 설명

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ left ≤ right ≤ 1,000

입출력 예

leftrightresult
131743
242752

제출 답안

function solution(left, right) {
    // 약수는 본인을 제외하고는 주어진 수의 절반보다 클 수 없음.
    const countDivisor = (num) => {
        let index = 1;
        let divisorNum = [];
        while (index <= num/2) {
            if (num % index === 0) divisorNum.push(index);
            index++;
        }
        divisorNum = [...divisorNum, num];
        return divisorNum.length;
    }
    
    let answer = 0;
    for (let num=left; num<=right; num++){
        countDivisor(num)%2 === 0 ? answer += num: answer -= num;
    }
    
    return answer;
}

답안 설명

약수의 개수를 구하는 함수를 만들고 반복문을 돌리면서 left부터 right까지의 약수의 개수가 홀수인지 짝수인지를 비교하였다.


0개의 댓글