약수가 뭐였더라 .... 하면서 어떻게 구하지 ...? 하며 시간이 많이 걸렸다.
filter로 나머지가 0되는 배열의 길이를 구해서 약수의 개수를 판단해줬다.
function solution(left, right) {
const numbers = [...new Array(right - left + 1)].map((_, i) => left + i);
const answer = numbers.reduce((acc, cur, idx) => {
let nums = [...new Array(cur)].map((_, i) => i + 1);
let numLen = nums.filter(num => cur % num === 0).length;
if(numLen % 2 === 0) return acc += cur;
if(numLen % 2 !== 0) return acc -= cur;
}, 0);
return answer;
}