https://www.acmicpc.net/problem/2609
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
// 2609번 최대공약수와 최소공배수
public class boj_2_2609 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
System.out.println(gcd(A, B));
System.out.println(lcm(A, B));
}
public static int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
public static int lcm(int a, int b) {
return a * b / gcd(a, b);
}
}
최대공약수와 최소공배수를 구하는 방법을 알고 있으면 풀 수 있다.
// 최대공약수
public static int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
// 최소공배수
public static int lcm(int a, int b) {
return a * b / gcd(a, b);
}
}