반응형
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 |