백준/JAVA

[백준/JAVA] 2609번 최대공약수와 최소공배수

누룽지맛치킨 2023. 2. 6. 15:45

1. 문제

두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

2. 문제 접근

1) 2개의 수를 입력받는다.
2) 유클리드 호제법을 사용하여 최대공약수를 구한다.
3) 2개의 수를 곱하고 최대공약수로 나누어서 최소공배수를 구한다.

3. 코드

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n1 = Integer.parseInt(st.nextToken());
        int n2 = Integer.parseInt(st.nextToken());

        int gcd = GCD(n1, n2);
        int lcm = n1*n2/gcd;
        System.out.println(gcd);
        System.out.println(lcm);

    }

    static int GCD(int n1, int n2) {
        if(n2==0) {
            return n1;
        }
        return GCD(n2, n1%n2);
    }
}