본문 바로가기

프로그래머스/LEVEL 1

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

최대공약수와 최소공배수

 

문제

 

 

https://programmers.co.kr/learn/courses/30/lessons/12940

 

코딩테스트 연습 - 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의

programmers.co.kr

 

코드

class Solution {
    public int[] solution(int n, int m) {
		int[] result = new int[2];

		int min_num = Math.min(n, m);
		int max_num = Math.max(n, m);

		if (max_num % min_num == 0) {
			result[0] = min_num;
		} else {
			result[0] = gcd(max_num, min_num);
		}

		result[1] = min_num * max_num / result[0];

//		System.out.println(Arrays.toString(result));

		return result;
    }
    
    public int gcd(int max_num, int min_num) {
		if (max_num % min_num == 0) {
			return min_num;
		}
		return gcd(min_num, max_num % min_num);
	}
}