백준/브루트포스
BOJ 2609 - 최대공약수와 최소공배수
누누01
2023. 4. 19. 16:28
728x90
2609번: 최대공약수와 최소공배수 (acmicpc.net)
2609번: 최대공약수와 최소공배수
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
www.acmicpc.net
두 수 n1 과 n2(n1<n2) 가 있을 때
n1과 n2를 0으로 나눌 수있는 1 이상의 수 중 가장 큰 수를 최대공약수라 한다.
최소공배수는 n1*n2 를 한 값에 최대공약수를 나누면 쉽게 구할 수 있다.
바로 코드를 보자
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
/**
* https://www.acmicpc.net/problem/2609
*/
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
int n1 = Integer.parseInt(st.nextToken());
int n2 = Integer.parseInt(st.nextToken());
int gcd = 0; // 최대공약수
int min = Math.min(n1, n2);
for (int i = min; i >=1; i--) {
if (n1 % i == 0 && n2 % i == 0) {
gcd = i;
break;
}
}
sb.append(gcd).append("\n").append(n1 * n2 / gcd);
System.out.println(sb);
}
}