Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
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 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

main

[백준-2609번/Java] 최대공약수와 최소공배수 본문

Algorithm

[백준-2609번/Java] 최대공약수와 최소공배수

1984 2022. 11. 14. 15:18

* 유클리드 호제법 공부하기

* BigInteger 내장함수 gcd, lcm 사용가능

import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws IOException {
		Scanner scan = new Scanner(System.in);

		int[] arr = new int[10000 + 1];

		for (int i = 1; i < arr.length; i++) {
			if (i == 1) {
				arr[i] = -1;
			} else {
				arr[i] = i;
			}
		}

		// 제곱근 범위 나누기
		for (int i = 3; i < arr.length; i++) {
			for (int j = 2; j <= Math.sqrt(i); j++) {
				if (i != j && i % j == 0) {
					arr[i] = -1;
				}
			}
		}

		int num1 = scan.nextInt();
		int num2 = scan.nextInt();
		// gcd : greatest common divisor 최대공약수
		int gcd = 1;
		// lcd : least common multiple 최소공배수

		for (int i = 2; i <= Math.min(num1, num2); i++) {
			while (num1 % i == 0 && num2 % i == 0) {
				num1 /= i;
				num2 /= i;
				gcd *= i;
			}
		}

		System.out.println(gcd);
		System.out.println(gcd * num1 * num2);

	}

}
728x90

'Algorithm' 카테고리의 다른 글

[백준-18258번/Java] 큐 2  (0) 2022.11.14
[백준-10845번/Java] 큐  (0) 2022.11.14
[백준-9020번/Java] 골드바흐의 추측  (0) 2022.11.14
[백준-4948번/Java] 베르트랑 공준  (0) 2022.11.13
[백준-2581번/Java] 소수  (0) 2022.11.13
Comments