728x90
문제
두 개의 자연수를 입력받아 최대공약수(GCD)와 최소공배수(LCM)를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000 이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소공배수를 출력한다.
예제 입력
24 18
예제 출력
6
72
#코드(완탐접근)
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
|
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws Exception {
// Please Enter Your Code Here
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());
int gcdVal = 1;
// 최대공약수
for(int i = Math.max(A, B); i >= 2; i--) {
if(A%i == 0 && B%i == 0) {
gcdVal = i;
break;
}
}
// 최소공배수
int lcmVal = A/gcdVal * B/gcdVal * gcdVal;
System.out.println(gcdVal);
System.out.println(lcmVal);
}
}
|
cs |
반응형
'CS > 알고리즘_문제풀이(자바)' 카테고리의 다른 글
rook (0) | 2021.08.29 |
---|---|
maxofarr (0) | 2021.08.29 |
colorpaper (0) | 2021.08.27 |
상자 꾸미기 (0) | 2021.08.27 |
offset (0) | 2021.08.27 |