최대공약수 최대공배수

가끔 문제를 풀다보면, 최대공배수 또는 최대공약수의 값을 구해야 할 때가 있다.

두개의 수(num1, num2)가 주어졌을 때 아래와 같이 코드로 구현할수 있다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
 
public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s = br.readLine();

		String[] arr = s.split(" ");
		Arrays.sort(arr);
        int num1 = Integer.valueOf(arr[0]);
		int num2 = Integer.valueOf(arr[1]);
	    int calcul_num1 = num1;
	    int calcul_num2 = num2;

		// calcul_num2 : 최대공약수
		while(calcul_num1 > 0) {
			int temp = calcul_num2;
			calcul_num2 = calcul_num1;
			calcul_num1 = temp%calcul_num1;
		}
		
        // 최대공약수
		System.out.println(calcul_num2);
        // 최소공배수
		System.out.println((num1*num2)/calcul_num2);
 
	}

 
}

좋은 웹페이지 즐겨찾기