반응형
이 포스팅은 자바 8버전으로 풀이가 됐습니다.
문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
// 2609번
public class Main {
public static void main(String[] args)throws IOException {
try {
BufferedReader rd = new BufferedReader(new InputStreamReader (System.in));
String text[] = rd.readLine().split(" ");
int A = Integer.parseInt(text[0]);
int B = Integer.parseInt(text[1]);
for(int i=A+B;i>0;i--) {
if(A%i==0 && B%i==0) {
System.out.println(i);
break;
}
}
for(int i=A;i<Math.pow(10000,2);i++) {
if(i%A==0 && i%B==0) {
System.out.println(i);
break;
}
}
}
catch(IOException e) {
System.out.println("error");
}
}
}
|
풀이
최대 공약수와 최소 공배수를 구하는 문제이다.
최대 공약수는 두 수 이상의 공약수가 각각 적어도 0개 이상의 정수를 가진 공약수 중. 최대인 수를 가리키는 말이다.
최소 공배수는 두 수 이상의 수들이 공통되는 배수를 의미한다.
15번 ~ 19번 라인에서 최대 공약수를 구하기 위해서 입력받은 A 값과 B 값이 모두 나눠지는 가장 큰 수의 공약수를 찾아낸다.
21번 ~ 25번 라인에서 최소 공배수를 찾아내기 위해서 입력받은 A 값과 B 값의 공통되는 배수를 찾아내기 위해서 낮은 값부터 공통되는 분수를 찾아낸 경우 break 문을 활용해서 멈춰준다.
짧은 포스팅 읽어주셔서 감사드립니다. 오타나 문제가 있는 경우 댓글 부탁드리겠습니다.
감사합니다. 다음 포스팅 때 뵙겠습니다.
반응형
'백준 - Java' 카테고리의 다른 글
[백준 - 10250][Java] ACM 호텔 (0) | 2022.06.04 |
---|---|
[백준 - 1037][Java] 약수 (0) | 2022.05.26 |
[백준 - 11653][Java] 소인수분해 (0) | 2022.05.24 |
[백준 - 10828][Java] 스택 (0) | 2022.05.23 |
[백준 - 1152][Java] 단어의 개수 (0) | 2022.05.19 |