[백준] 2609번 최대공약수와 최소공배수 - Java, 자바

Kim Ji Eun·2022년 1월 7일
0

문제

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

코드


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

// 2609번 최대공약수와 최소공배수
public class boj_2_2609 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());

        System.out.println(gcd(A, B));
        System.out.println(lcm(A, B));
    }

    public static int gcd(int a, int b) {
        while (b != 0) {
            int r = a % b;
            a = b;
            b = r;
        }
        return a;
    }

    public static int lcm(int a, int b) {
        return a * b / gcd(a, b);
    }
}

풀이

최대공약수와 최소공배수를 구하는 방법을 알고 있으면 풀 수 있다.

	// 최대공약수
    public static int gcd(int a, int b) {
        while (b != 0) {
            int r = a % b;
            a = b;
            b = r;
        }
        return a;
    }

	// 최소공배수
    public static int lcm(int a, int b) {
        return a * b / gcd(a, b);
    }
}
profile
Back-End Developer

0개의 댓글