-
[백준] 2609. 최대공약수와 최소공배수PS/Java 2022. 3. 31.
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
예제 입력 1
24 18
예제 출력 1
6 72
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main { public static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); public static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] args) throws Exception { StringTokenizer st = new StringTokenizer(br.readLine()); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); int r = a > b ? gcd(a, b) : gcd(b, a); bw.write(r + "\n" + (a * b / r)); br.close(); bw.flush(); bw.close(); } public static int gcd(int p, int q) { if (q == 0) return p; return gcd(q, p % q); } }
최대공약수는 유클리드 호제법을 사용하였다.
최소공배수는 두 수를 곱하고 최대공약수로 나눈 수이다.
'PS > Java' 카테고리의 다른 글
[백준] 1475. 방 번호 (0) 2022.03.31 [백준] 1436. 영화감독 숌 (0) 2022.03.31 [백준] 1427. 소트인사이드 (0) 2022.03.31 [백준] 1934. 최소공배수 (0) 2022.03.31 [백준] 11653. 소인수분해 (0) 2022.03.31