유클리드호제법

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 타입으로 선언하였다. 문제를 풀이..
YouWallHyeok
'유클리드호제법' 태그의 글 목록