< 문제 >
풀이
- 먼저 범위를 left ~ right까지로 정하고 해당 범위 안에서 반복문을 돈다.
그 내부에서 한번더 반복문을 돌면서 각각의 left~right범위에 드는 숫자의 약수의 개수를 count라는 변수에 구한다. (count는 매번 첫번째 반복이돌때 즉 left가 바뀔때마다 0이 된다.)
최종적으로 그렇게 구한 count의 개수를 가지고 짝수여서 더할지, 홀수여서 뺄지 결정해서 계산해주는 풀이.
function solution(left, right) {
let answer = 0;
for (let i = left; i <= right; i++) {
let count = 0;
for (let j = 1; j <= i; j++) {
if (i % j === 0) {
count++;
}
}
if (count % 2 === 0) {
answer = answer + i;
} else {
answer = answer - i;
}
}
return answer;
}
console.log(solution(13, 17));
console.log(solution(24, 27));