정수 N의 약수의 개수를 구할 때 1부터 N까지 반복문을 통해서 약수를 구하는 게 아닌,
Math.sqrt(N) 함수를 사용하여 간단한 시간복잡도로 약수의 개수를 구할 수 있다.

정답 코드
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i=left; i<=right; i++){
if(i % Math.sqrt(i) != 0) answer += i;
else answer -= i;
}
return answer;
}
}
*** 결과 ***
정수 N % N의 제곱근 == 0일 경우 N의 약수는 홀수개 이며,
정수 N % N의 제곱근 != 0일 경우 N의 약수는 짝수개 이다.
'알고리즘' 카테고리의 다른 글
JAVA - 1부터 n사이에 소수의 개수 구하기 (0) | 2023.12.18 |
---|