코테/백준

[백준/JAVA] 1934번: 최소공배수

imname1am 2023. 4. 26. 11:31
반응형

🔺 문제

 

1934번: 최소공배수

두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있

www.acmicpc.net

 

🔺 코드

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
import java.util.*;
import java.io.*;
 
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        
        for(int i = 0 ; i < T ; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine()," ");
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());
            
            int result = A * B / gcd(A, B);
            System.out.println(result);
        }
    }
    
    // 최대공약수 계산 (유클리드 호제법)
    public static int gcd(int a, int b) {
        if(b == 0)
            return a;
        else
            return gcd(b, a % b);
    }
}
cs
✅ 해결 아이디어
✔ 유클리드 호제법 (최대공약수 계산)
최소공배수 = A * B / 최대공약수
- gcd(작은 수, 큰 수 % 작은 수)

 


💬 느낀 점

오랜만에 쓰려니까 까먹음,,,, 잊지 말자

 

 

1회독 2회독 3회독 4회독 5회독
V 6/20      

 

( + 6/20 2회독)

유클리드 호제법 잘 기억해냈다... 굿!!!

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 IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();
        
        int T = Integer.parseInt(br.readLine());
        while(T-- > 0) {
            st = new StringTokenizer(br.readLine(), " ");
            
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            
            sb.append(a * b / getGCD(a, b)).append("\n");
        }
 
        System.out.println(sb);
    }
    
    static int getGCD(int a, int b) {
        if(b == 0)  return a;
        return getGCD(b, a % b);
    }
}
 
cs

반응형