반응형
🔺 문제
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 |
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 18352번: 특정 거리의 도시 찾기 (0) | 2023.04.27 |
---|---|
[백준/JAVA] 1850번: 최대공약수 (0) | 2023.04.26 |
[백준/JAVA] 11689번: GCD(n, k) = 1 (0) | 2023.04.26 |
[백준/JAVA] 1016번: 제곱 ㄴㄴ 수 (0) | 2023.04.25 |
[백준/JAVA] 1747번: 소수&팰린드롬 (0) | 2023.04.25 |