첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
풀이
1. 최대공약수는 유클리드 호제법으로 구할 수 있다. 최대공약수를 구하는 방법은 재귀함수를 사용하거나 반복문을 통해 작성할 수 있다. 2. 최소공배수는 A와 B 두 수가 주어졌을 때, (A*B) / 최대공약수(A, B)이다.
코드
/*
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
*/
import java.util.*;
class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
int result = gcd(A, B);
System.out.println(result);
System.out.println(lcm(A*B, result));
}
public static int gcd(int A, int B){
if(B == 0){
return A;
}else{
return gcd(B, A % B);
}
}
public static int lcm(int A, int B){
return A/B;
}
}