

내 풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// 최소 공배수 구하는 문제
// for문을 돌려서 A와 B를 받는다.
// 다시 for문을 돌려서 A와 B의 공통약수를 구하고 A와B를 j로 나눈다.
// 그리고 공통약수는 중첩해서 곱해둔다.
// 공통약수 * 나눈 A * 나눈 B를 출력한다.
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int num = sc.nextInt();
for (int i = 0; i < num; i++) {
int A = sc.nextInt();
int B = sc.nextInt();
int answer = 1;
for (int j = Math.max(A,B); j > 1; j--) {
if (A % j == 0 && B % j == 0) {
A /= j ;
B /= j ;
answer *= j;
}
}
answer *= A * B;
sb.append(answer);
sb.append("\n");
}
System.out.println(sb.toString());
}
}
느낀점
손으로 종이에 최소공배수 구하는건 참 쉬운데.. 코드로 구현하려니까 조금 어렵다..
Set으로도 설계해보고, 배열로도 설계하다가 너무 어렵게 구현하는것 같아 고민을 좀 많이 한 문제다. 간단하게 풀어 기분이 좋다.