주어진 두 숫자의 최소공배수를 구하는 문제다.
이 문제는 두 숫자의 최대공약수를 구하는 대표적인 알고리즘인 유클리드 호제법을 활용해 풀이하였다.
※ 최소공배수를 구하는 문제이며, 최소공배수는 [숫자1 x 숫자2 / 최대공약수] 로 계산할 수 있다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
for (int i = 0; i < T; i++) {
int A = in.nextInt();
int B = in.nextInt();
int gcd = calcGcd(B, A); // 최대공약수
int lcm = A * B / gcd; // 최소공배수
System.out.println(lcm);
}
}
public static int calcGcd(int big, int small) {
if (big % small == 0) {
return small;
}
return calcGcd(small, big % small);
}
}
'Algorithm' 카테고리의 다른 글
백준 2798번 블랙잭 (0) | 2023.03.13 |
---|---|
백준 1436번 영화감독 숌 (0) | 2023.03.11 |
백준 11399번 ATM (0) | 2023.03.11 |
백준 1541번 잃어버린 괄호 (0) | 2023.03.10 |
백준 11050번 이항계수 1 (0) | 2023.03.10 |
댓글