순서쌍의 개수

han.user();·2023년 3월 19일
0

프로그래머스

목록 보기
1/87
post-thumbnail

포인트 1.

n을 매개변수로 받아서, n의 약수를 찾아서 곱한 결과가 n이 되는 순서쌍의 개수를 계산하여 반환.

포인트 2.

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
    }
}
profile
I'm still hungry.

0개의 댓글