728x90
https://www.acmicpc.net/problem/2609
2609번: 최대공약수와 최소공배수
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
www.acmicpc.net
import java.io.*;
// 최대공약수와 최소공배수
public class _2609 {
// 유클리드 호제법
public static int gcd(int a, int b) {
int c;
while (b != 0) {
c = a % b;
a = b;
b = c;
}
return a;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] input = br.readLine().split(" ");
int num1 = Integer.parseInt(input[0]);
int num2 = Integer.parseInt(input[1]);
int gcd = gcd(num1, num2);
int lcm = num1 * num2 / gcd;
bw.write(gcd + "\n" + lcm);
bw.flush();
bw.close();
}
}
MEMO
-- 최대공약수, 최소공배수 알고리즘을 이해하고 있는 것이 중요
-- 최대공약수 == gcd는 유클리드 호제법을 이용한 gcd() 메소드를 통해 계산
-- 최소공배수는 두 수 num1, num2의 곱에 미리 구한 최대공약수를 나눠서 계산
!! 기본적인 수학 지식과 코드로 구현하는 능력 갖추기 !!
728x90
728x90
'백준[baekjoon] > JAVA' 카테고리의 다른 글
백준(baekjoon) [JAVA] - 6588번: 골드바흐의 추측 (0) | 2023.07.28 |
---|---|
백준(baekjoon) [JAVA] - 1929번: 소수 구하기 (0) | 2023.07.25 |
백준(baekjoon) [JAVA] - 11656번: 접미사 배열 (0) | 2023.07.23 |
백준(baekjoon) [JAVA] - 1918번: 후위 표기식 (0) | 2023.07.20 |
백준(baekjoon) [JAVA] - 1935번: 후위 표기식2 (0) | 2023.07.19 |