728x90
문제
https://www.acmicpc.net/problem/2609
풀이 코드
- 유클리드 호제법을 사용하여 최대 공약수(GCD)를 구한다. -> 유클리드 호제법 설명(위키백과)
- 최소 공배수(LCM)는 유클리드 호제법으로 구한 최대 공약수를 사용하여 풀이한다. -> LCM = n1 * n2 / GCD
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
//유클리드 호제법으로 최대 공약수 구하기
public static int gcd(int p, int q) {
if (q == 0) {
return p;
}
return gcd(q, p%q);
}
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);
System.out.println(gcd);
//최소 공배수(LCM) : n1*n2/GCD
System.out.println(n1*n2/gcd);
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[알고리즘/백준] 13458 시험 감독 - 자바(Java), 삼성 SW 역량테스트 기출 (0) | 2021.10.10 |
---|---|
[알고리즘/백준] 18111 마인크래프트 - 자바(Java) (0) | 2021.10.09 |
[알고리즘/백준] 1654 랜선 자르기 - 자바(Java), 이분 탐색(Binary Search) (0) | 2021.10.08 |
[알고리즘/백준] 2018 통계학 - 자바(Java) (0) | 2021.10.08 |
[알고리즘/백준] 2805 나무 자르기 - 자바(Java), 이분 탐색(Binary Search) (0) | 2021.10.08 |
댓글