Algorithm
[백준-1934번/Java] 최소공배수
1984
2022. 11. 17. 16:46
* 유클리드 호제법
두 양의 정수 a, b (a>b)에 대하여 a=bq+r이라 하면, (a, b)의 최대공약수는 (b,r)의 최대공약수와 같다.
r==0 일 때, 두 수의 최대공약수는 b이다.
최소 공배수 = a * b / 최대공약수
* 최대공약수
* 최소공배수
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
for (int i = 0; i < N; i++) {
StringTokenizer stk = new StringTokenizer(br.readLine(), " ");
int a = Integer.parseInt(stk.nextToken());
int b = Integer.parseInt(stk.nextToken());
System.out.println(lcm(a, b));
}
}
private static int gcd(int a, int b) {
int temp;
if (a < b) {
temp = a;
a = b;
b = temp;
}
int r = a % b;
if (r == 0) {
return b;
}
return gcd(b, r);
}
private static int lcm(int a, int b) {
return a * b / gcd(a, b);
}
}
728x90