카테고리 없음

[백준] 2609 : 최대공약수와 최소공배수(JAVA)

송테이토 2022. 11. 7. 14:37

최대공약수와 최소공배수

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율

1 초 128 MB 78075 45199 36740 58.563%

문제

두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.

출력

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

예제 입력 1

24 18

예제 출력 1

6
72

https://songsunkite.tistory.com/107

 

[백준] 1934 : 최소공배수(JAVA) - 유클리드호제법 자바

최소공배수 문제 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수

songsunkite.tistory.com

예전 포스팅했던 것을 참고해주세요!!

 

package Day1104;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class B2609 {
	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");

		int A = Integer.parseInt(st.nextToken());
		int B = Integer.parseInt(st.nextToken());
		System.out.println(GCD(A, B) + "\\n" + LCM(A, B));
	}

	// 최대공약수 구하기
	public static int GCD(int a, int b) {
		int r = a % b;

		if (r == 0)
			return b;

		return GCD(b, a % b);
	}

	// 최소공배수 구하기
	public static int LCM(int a, int b) {
		return a * b / GCD(a, b);
	}

}