백준 2609 최대공약수와 최소공배수 (JAVA 자바 풀이)
📌 문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
⚔ 입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
📣 출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
💎 문제 분석
최대공약수와 최대공배수는 유클리드 호제법을 이용하여 간단히 구할 수 있다.
💡 코드 구현
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
int number1 = Integer.parseInt(stringTokenizer.nextToken());
int number2 = Integer.parseInt(stringTokenizer.nextToken());
int gcd = gcd(number1, number2);
System.out.println(gcd);
System.out.println(lcm(number1, number2, gcd));
}
private static int gcd(int number1, int number2){
if (number2 ==0) {
return number1;
}
return gcd(number2, number1 % number2);
}
private static int lcm(int number1, int number2){
return number1 * number2 / gcd(number1, number2);
}
private static int lcm(int number1, int number2, int gcd){
return number1 * number2 / gcd;
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 2580 스도쿠 (JAVA 자바 풀이) (0) | 2022.12.07 |
---|---|
백준 2981 검문 (JAVA 자바 풀이) (0) | 2022.12.04 |
백준 2477 참외밭 (JAVA 자바 풀이) (0) | 2022.12.04 |
백준 3009 네 번째 점 (JAVA 자바 풀이) (0) | 2022.12.04 |
백준 11478 서로 다른 부분 문자열의 개수 (JAVA 자바 풀이) (0) | 2022.12.04 |