반응형

2609번

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;

public class Main {

	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[] inputs = br.readLine().split(" ");

		int[] numbers = new int[2];
		numbers[0] = Integer.parseInt(inputs[0]);
		numbers[1] = Integer.parseInt(inputs[1]);

		Arrays.sort(numbers); // 두 수중 더 작은값이 첫번째 배열에 저장됨

		int smallNum = numbers[0];

		int gcd = 0; // 최대공약수
		int lcm = 0; // 최소공배수

		while (true) {
			if (numbers[0] % smallNum == 0 && numbers[1] % smallNum == 0) {
				gcd = smallNum;
				lcm = smallNum * (numbers[0] / smallNum) * (numbers[1] / smallNum);
				break;
			}
			smallNum--;
		}

		bw.write(gcd + "\n" + lcm);
		bw.flush();
		bw.close();
	}

}

 

정답을 맞춘 풀이방법

1 . 입력된 두 수중 작은 값을 기준으로 나머지 연산을 통해 최대 공약수를 구함

2. 이후 최소 공배수를 함께 출력함

3. 유클리우드 호제법을 사용한 재귀적인 풀이방법도 확인하면 좋을 것 같음

반응형

'알고리즘 > 백준 문제[추후 옮길예정]' 카테고리의 다른 글

[JAVA] 백준 6588번  (0) 2021.05.15
[JAVA] 백준 1934번  (0) 2021.05.15
[JAVA] 백준 11656번  (0) 2021.05.13
[JAVA] 백준 10824번  (0) 2021.05.13
[JAVA] 백준 11655번  (0) 2021.05.12

+ Recent posts