CS/알고리즘_문제풀이(자바)

GCD LCM

Jedy_Kim 2021. 8. 28. 21:41
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