코딩 테스트 풀이 🛠

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

엄성준 2023. 1. 19. 22:56

문제 설명

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

 

입출력 예


left right result
13 17 43
24 27 52

 

나의 풀이

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function solution(left, right) {
    let answer = 0
    const nums = []
    
    for(let i=left; i<=right; i++){
        nums.push(i)
    }
    nums.forEach((num)=>{    
        let yaksu =[]
        for(let i=1; i<num; i++){
            if(num % i ===0){
                yaksu.push(i)
            }
        }
        if(yaksu.length % 2 ===0){
            answer -=num
        }else{
            answer +=num
        }
    })
    return answer;
}
cs