

function solution(number, limit, power) {
var answer = 0
for(let i = 1 ; i <= number ; i++){
let soldier = 0
for(let j = 1 ; j <= Math.sqrt(i) ; j++){
if(i % j === 0 ){
if(i / j === j){
soldier++
}else{
soldier += 2
}
}
if(soldier > limit){
soldier = power
break;
}
}
answer += soldier
}
return answer
}
문제를 보면 우선 약수를 찾고 그 약수의 갯수가 limit을 초과하면 2를 반환, 그게 아니라면 약수의 갯수만큼 반환
그리고 그 반환한 값들을 더하면 된다.
약수의 갯수를 찾는 방법은 다른문제에서도 했듯이 Math.sqrt()를 이용하면 된다.
약수가 되려면 i % j == 0 여야만 된다.
그리고 약수중엔 4, 9, 16, 25 처럼 특정수에 제곱을 한 수는 약수의 개수를 홀수로 가지는데 이 경우엔 조건문을 써서
1만 더하게끔, 그 외에는 짝수를 가지기 때문에 2를 더하게끔했다.
그리고 약수를 찾는중에 limit을 넘으면 거기서 반복문을 멈춰야하기때문에 break를 넣어서 바로 멈추게끔하고, 이럴경우엔 power를 반환해야 하기때문에 solider = power 라고하고 내부반복문을 멈추게했다.