Java으로 구현한 2609번 최대공약수와 최소공배수 문제 풀이입니다.
https://www.acmicpc.net/problem/2609
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int mul = a * b;
while (b != 0) {
a = a % b;
int temp = a;
a = b;
b = temp;
}
System.out.println(a);
System.out.println((int) mul / a);
}
}
1. 반복문을 통해 최대공약수를 먼저 구하도록 한다. 두 수 a와 b가 있을 때 a, b의 최대 공약수는 b와 a를 b로 나눈 나머지 값의 최대공약수와 같다.
2. 최대공약수를 구하고 그 값을 통해 최소공배수를 구할 수 있다. 최소 공배수는 a로 나눠도 나누어 떨어지고
b로 나눠도 나누어 떨어지기 때문에 입력받은 원래의 값 a, b를 곱하고 이전에 구했던 최대공약수로 나누어 출력한다.
'백준(JAVA) 풀이 > 수학' 카테고리의 다른 글
백준(JAVA) 1644번 소수의 연속합 풀이 (0) | 2022.09.01 |
---|---|
백준(JAVA) 2485번 가로수 풀이 (0) | 2022.08.31 |
백준(JAVA) 1929번 소수 구하기 풀이 (0) | 2022.08.26 |
백준(JAVA) 1978번 소수 찾기 풀이 (0) | 2022.08.25 |
백준(JAVA) 1037번 약수 풀이 (0) | 2022.08.25 |