코딩테스트/백준
[백준 JAVA] 2824. 최대공약수
tkxx_ls
2024. 7. 11. 13:07
문제 링크
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자리만 출력해야 하므로 잘라줍니다.