본문 바로가기

코딩테스트/백준

[백준 JAVA] 2824. 최대공약수

문제 링크


https://www.acmicpc.net/problem/2824

접근 방법


큰 수 연산을 해야 하므로 BigInteger를 사용합니다.

 

소스 코드


import java.util.*;
import java.io.*;
import java.math.BigInteger;

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		br.readLine();
		BigInteger a = Arrays.stream(br.readLine().split(" "))
							.map(BigInteger::new)
							.reduce(BigInteger.ONE, BigInteger::multiply);
		br.readLine();
		BigInteger b = Arrays.stream(br.readLine().split(" "))
							.map(BigInteger::new)
							.reduce(BigInteger.ONE, BigInteger::multiply);

		String answer = a.gcd(b).toString();
		answer = answer.length() > 9 ? answer.substring(answer.length() - 9) : answer;
		System.out.println(answer);
	}
}

코드 설명


a와  b의 곱을 구한 후, gcd를 통해 최대공약수를 구합니다.

9자리 보다 크면 마지막 9자리만 출력해야 하므로 잘라줍니다.

'코딩테스트 > 백준' 카테고리의 다른 글

[백준 JAVA] 16472. 고냥이  (0) 2024.07.25
[백준 JAVA] 1033. 칵테일  (0) 2024.07.16
[백준 JAVA] 14232. 보석 도둑  (0) 2024.07.09
[백준 JAVA] 1456. 거의 소수  (0) 2024.07.03
[백준 C++] 30867. 과제가 너무 많아  (0) 2024.05.22