[백준 2609번] 최대공약수와 최소공배수
[백준 2609번] 최대공약수와 최소공배수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package _1월_2주차; import java.util.Scanner; public class 백준_손수경_정답_2609 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1 = sc.nextInt(); int num2 = sc.nextInt(); int GCD = 0; int LCM; int i; int min = (num1 > num2) ? num2 : num1; int max = (num1 < num2) ? num2 : num1; for (i = min; i > 0; i--) { if ((num1 % i == 0) && (num2 % i == 0)) { GCD = i; break; } } LCM = min * (max / GCD); System.out.println(GCD); System.out.println(LCM); } } | cs |
GCD: 최대공약수
LCM: 최소공배수
최대공약수 구하기
입력받은 두 수 중 작은 수부터 하나씩 줄여가면서 두 수 모두 나누어 떨어지는 수를 최대공약수라고 지정하였다. 이때, i를 1씩 줄여나가면서 최대공약수를 구했으므로, 제일 처음 조건에 맞는 i가 최대공약수이다.
최소공배수 구하기
최소공배수는 최소공배수를 구하는 공식을 이용하여서 구했다. min * (max / GCD) 를 이용하였다.(최소공배수를 구할 때 사용하는 나누기식(?) 그거 이용해서 나온 규칙,,)
댓글남기기