
1. 문제 풀이 배열 M의 모든 숫자들의 최대공약수를 G라고 하자. 이때, G의 약수는 배열 M의 모든 수의 약수이다. 따라서 G의 약수를 구해 따로 저장한다. G는 1,000,000,000 이하의 수이고, 약수 개수의 최대값은 G가 831,600일 때 180개를 가진다. D의 배열 내 모든 숫자들의 최소공배수를 L이라고 하자. G의 임의의 약수 g가 L로 나누어 떨어진다면 문제에서 요구한 숫자임을 판단할 수 있다. 1. L을 계산하던 도중 G보다 값이 커진다면 문제에서 요구한 조건을 성립하는 수가 없으므로 0을 출력하고 종료하면 된다. 2. G가 1e9이고 계산이 아직 남은 L이 1e9보다 작지만 비슷한 값이라면 오버플로우가 발생할 수 있으므로 L은 long long 타입으로 선언하였다. 문제를 풀이..