[프로그래머스/Java] 최대공약수와 최소공배수

이은정·2024년 9월 22일

프로그래머스/Java

목록 보기
35/74
post-thumbnail

문제

로직

먼저 최대 공약수를 구하기 위해서는 1부터 n까지의 수 중에서 n과 m에서 나누었을 때 둘 다 나머지가 0인 가장 큰 수를 구하면 된다.

두 번째로 최소 공배수를 구하기 위해서는 m의 배수 중에서 n으로 나누었을 때 나머지가 0인 가장 작은 수를 구하면 된다.

코드

class Solution {
    public int[] solution(int n, int m) {
        
        int greatestCommonFactor = getGreatestCommonFactor(n, m);
        int leastCommonMultiple = getLeastCommonMultiple(n, m);
        
        return new int[]{greatestCommonFactor, leastCommonMultiple};
    }
    
    // 최대 공약수 구하는 함수
    private int getGreatestCommonFactor (int n, int m) {
        for (int i = n; i > 1; i --) {
            if (n % i == 0 && m % i == 0) {
                return i;
            }
        }
        return 1;
    }
    
    // 최소 공배수를 구하는 함수
    private int getLeastCommonMultiple (int n, int m) {
        for (int i = 1; ; i ++) {
            int num = m*i;
            if (num % n == 0) {
                return m*i;
            }
        }
    }
}

결과

업로드중..

profile
돈 많은 백수가 꿈인 백엔드 개발자 지망생

0개의 댓글