function solution(number, limit, power) {
const numbers = Array.from({length: number}, (_, i) => i + 1);
const countArray = [];
numbers.forEach((number) => {
let count = 0;
for (let i = 1; i <= Math.sqrt(number); i++) {
if (number % i === 0) {
count++;
if (number / i !== i) count++;
}
}
countArray.push(count);
})
return countArray.map((count) => count > limit ? power : count).reduce((prev, curr) => prev + curr, 0);
}
N / 2
의 값보다 클 수 없다.N / 2
까지만 반복문을 돌면서 약수 확인Math.sqrt()
: 숫자를 인수로 전달하면 인수의 제곱근 반환1부터 N의 제곱근까지
의 범위 내에서 N의 약수 확인N을 위의 결과로 나온 값
으로 나눈 값도 N의 약수(N / 약수) === 약수
일 경우 중복인 숫자이므로 제외⇒ 제곱근을 이용하여 약수 구하는 공식 기억하기