가끔 문제를 풀다보면, 최대공배수 또는 최대공약수의 값을 구해야 할 때가 있다.
두개의 수(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);
}
}