순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ n ≤ 1,000,000
입출력 예
n result 20 6 100 9 입출력 예 설명
입출력 예 #1n이 20 이므로 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return합니다.
입출력 예 #2
n이 100 이므로 곱이 100인 순서쌍은 (1, 100), (2, 50), (4, 25), (5, 20), (10, 10), (20, 5), (25, 4), (50, 2), (100, 1) 이므로 9를 return합니다.
주어진 숫자의 제곱근을 구해서 제곱근까지의 약수를 구해줬다.
n이 20일 때,
약수 1, 2, 4까지 구해서 6개의 순서쌍을 구했다.
마지막으로 구한 제곱근이 정수이면, 제곱수라는 뜻이므로 제곱근으로만 이루어져 있는 한 쌍의 개수를 추가해주었다.
단, n이 1인 경우, 한 쌍밖에 없기 때문에 바로 1을 리턴해주었다.
class Solution {
public int solution(int n) {
int answer = 0;
double m = Math.sqrt(n);
if (n==1) return 1;
for(int i=1;i<m;i++){
if(n%i==0)
answer += 2;
}
if (m == (int)m) answer += 1;
return answer;
}
}