class Solution {
public int solution(int number, int limit, int power) {
int ans = 0;
for (int i = 1; i <= number; i++) {
int offensePower = 0;
for (int j = 1; j * j <= i; j++) {
if (j * j == i) offensePower++;
else if (i % j == 0) offensePower += 2;
}
if(offensePower <= limit) ans += offensePower;
else ans += power;
}
return ans;
}
}
시간초과 오류가 발생했다.
이중 for문 탓!
약수의 개수를 구하는 안쪽 for문을 제곱근을 이용하여 시간을 단축시켰다.
약수의 개수를 구하려는 수 N의 한 약수가 i일 때,