function solution(left, right) {
let sum = 0;
let result = [];
for (let i = left; i <= right; i++) {
let index = 1;
let cnt = 0;
while (index <= i) {
if (i % index === 0) cnt++;
index++;
}
result.push([i, cnt]);
}
result.map((el) => {
if (el[1] % 2 === 0) sum += el[0];
else sum -= el[0];
});
return sum;
}
다른 사람 풀이
제곱근이 정수이면 약수의 개수는 홀수이다.
function solution2(left, right) {
let sum = 0;
for (let i = left; i <= right; i++) {
if (Number.isInteger(Math.sqrt(i))) sum -= i;
else sum += i;
}
return sum;
}