Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[백준] - 최소공배수 (1934) (자바/Java) 본문

알고리즘문제/백준 문제(Java)

[백준] - 최소공배수 (1934) (자바/Java)

luke-king 2024. 3. 11. 18:49

 

 

 

 

 

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

 

1934번: 최소공배수

두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있

www.acmicpc.net

 

 

 

 

문제.


 

 

 

풀이.


 

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        
        for (int i = 0; i < num; i++) { //3개의 최소공배수 구하기 위한 반복
            int a = sc.nextInt();
            int b = sc.nextInt();
            int gcd = gcdGet(a,b); //최대공약수

            System.out.println((a*b) / gcd); //최소공배수
        }

    }

    static int gcdGet(int a, int b) { // 최대공약수
        if (a % b == 0) {
            return b;
        }
        return gcdGet(b, a % b);
    }
}

 

최소공배수 구하기 문제.

 

이번 문제에서도 전에 풀었던 문제 중 최소공배수와 최대공약수 문제가 있다. 그 문제처럼 "유클리드 호제법"을 사용해 풀 것이다.

 

<A, B의 최대공약수>

A % B = C

B % C = 0 //최대공약수 = C 

 

<최소공배수>

(A * B) / C(최대공약수)

 

https://luke-king.tistory.com/42 

 

[백준] - 최대공약수와 최소공배수 (2609) (자바/Java)

https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문

luke-king.tistory.com

유클리드 호제법 설명글은 위 글에 작성해 뒀다.

 

풀이를 말하자면

 

최대공약수 : 24 % 18 = 6      18  % 6 = 0    최대공약수 = 6

최소공배수 : (24 * 18) / 최대공약수(6)        최소공배수 = 72이다.

 

이런 식으로 풀면 쉽게 풀 수 있다.