본문 바로가기
알고리즘/백준

백준 2608번 - 최대공약수와 최소공배수 (Java 8)

by latissimus 2022. 3. 15.

https://www.acmicpc.net/problem/2609

 

2609번: 최대공약수와 최소공배수

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

www.acmicpc.net

코드 :

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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());
        StringBuilder sb = new StringBuilder();
        int num1 = Integer.parseInt(st.nextToken());
        int num2 = Integer.parseInt(st.nextToken());

        int gcd = GCD(num1, num2);
        int lcm = num1 * num2 / gcd;
        sb.append(gcd + "\n").append(lcm);

        System.out.println(sb);
    }
    public static int GCD(int num1,int num2){
        int r = num1 % num2;
        if(r == 0){
            return num2;
        }
        return GCD(num2, r);
    }
}

참고 :

st-lab님 블로그 - 유클리드 호제법에 대한 자세한 설명이 있다. 하나씩 대조하는 방법으로 직접 구현하려다 찾아보길 잘했다.

댓글