코테/백준

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

imname1am 2023. 5. 19. 16:34
반응형

🔺 문제

 

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

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

www.acmicpc.net

 

 

🔺 코드

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
import java.util.*;
import java.io.*;
 
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 n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        
        System.out.println(GCD(n, m));
        System.out.println((n*m)/GCD(n, m));
    }
    
    static int GCD(int a, int b) {
        int gcd = 0;
        int max = 1;
        for(int i = 2 ; i <= Math.min(a, b) ; i++) {
            if(a % i == 0 && b % i == 0) {
                max = Math.max(max, i);
            }
        }
        return max;
    }
}
cs

 


🔺 다른 풀이들

- 아 유클리드 호제법 써서 이렇게 풀어야 하는디...

 

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

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

st-lab.tistory.com

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

💬 느낀 점

아 유클리드 호제법 써서 이렇게 풀어야 하는디...

그냥 반복문 써서 얼레벌레 풀어버렸다...

 

담부턴 유클리드 호제법 재귀함수 형태로 꼭 푸는 걸로...

 

 

1회독 2회독 3회독 4회독 5회독
V        

 

반응형