[프로그래머스] 순서쌍의 개수 자바

그린·2023년 5월 16일
0

프로그래머스

목록 보기
21/28
post-thumbnail

[프로그래머스] 순서쌍의 개수

✅문제 설명

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.

제한사항
1 ≤ n ≤ 1,000,000
입출력 예

nresult
206
1009

입출력 예 설명
입출력 예 #1

n이 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;
    }
}

0개의 댓글