문제 링크
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 |