for
function solution(number, limit, power) {
let result = 0;
for (let i = 1; i <= number; ++i) {
const tmp = countDevisor(i);
result += tmp > limit ? power : tmp;
}
return result;
}
function countDevisor(n) {
let result = 0;
const sqrt = Math.sqrt(n);
for (let i = 1; i <= sqrt; ++i) {
if (n % i === 0) {
result += i === sqrt ? 1 : 2;
}
}
return result;
}
다른 사람 풀이를 보고 Math.sqrt()
를 호출할 필요 없이 i * i
가 n
보다 작은지를 확인해도 된다는 걸 알았다. 당연한 건데 왜이리 단순하게만 생각하게 되는지..