n을 매개변수로 받아서, n의 약수
를 찾아서 곱한 결과가 n이 되는 순서쌍의 개수를 계산하여 반환.
for문으로 1부터 n의 제곱근
까지 반복하면서, n을 i로 나누어 떨어지는 경우에는 j=n/i를 계산하여 (i, j)와 (j, i) 순서쌍이 존재하므로 answer에 2를 더합니다. 만약 i=j인 경우에는 (i, i) 순서쌍만 존재하므로 answer에 1을 더한다.
입출력 예 #1
n이 20인 경우 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 6개의 순서쌍을 찾아서 반환
입출력 예 #2
n이 100인 경우 (1, 100), (2, 50), (4, 25), (5, 20), (10, 10)
, (20, 5), (25, 4), (50, 2), (100, 1) 9개 순서쌍을 찾아서 반환
class Solution {
public static void main(String[] args) {
int n = 100; // 예시로 n값을 100으로 초기화
int answer = 0; // 순서쌍의 개수를 저장할 변수 answer를 초기화
// 1부터 n의 제곱근까지 반복
for (int i = 1; i <= Math.sqrt(n); i++) {
// n을 i로 나누어 떨어지면 i는 n의 약수
if (n % i == 0) {
// n을 i로 나눈 몫을 구함
int j = n / i;
// i와 j가 같지 않으면 (i, j)와 (j, i) 두 개의 순서쌍이 존재
if (i != j) {
answer += 2; // 순서쌍 개수에 2를 더함
} else {
// i와 j가 같으면 (i, i) 한 개의 순서쌍만 존재하니
answer += 1; // 순서쌍 개수에 1을 더함
}
}
}
// 구한 순서쌍의 개수를 출력
System.out.println(answer); // 9
}
}