1612 : 공통인수
제한시간: 1000 ms
메모리제한: 64 MB
해결횟수: 6 회
시도횟수: 17 회

N개의 2이상 1,000,000,000 정수 집합이 주어질 때,
1보다 큰 수 중에서 집합의 숫자를 가장 많이 나누어떨어지게 하는 숫자를 찾는 프로그램을 작성하라.
예를 들어 정수 집합에 {2, 3, 4, 6} 이라는 숫자가 존재할 경우,
집합의 숫자를 나누어떨어지게 하는 숫자는
2(2,4,6을 나눠떨어지게 함),
3(3,6을 나누어떨어지게 함),
4,
6이 존재하는데,
이 중에서 2가 가장 많은 숫자를 나눠떨어지게 하므로 답은 2가 된다.

입력은 20개 이하의 테스트 케이스로 이루어진다. 한 줄에는 하나의 테스트 케이스가 입력되는데, 테스트 케이스의 첫 번째 숫자는 집합을 이루는 원소의 개수 N(N≤50)이 입력되며, 그 다음에는 N개의 정수 집합을 이루는 숫자가 입력된다. 원소의 개수에 0이 입력될 경우 입력을 종료한다.

각 테스트 케이스에 대해 집합의 숫자를 가장 많이 나눠떨어지게 하는 숫자를 테스트 케이스 순서대로 한 줄에 하나씩 출력한다.
집합에 포함되어 있지 않은 수가 정답일 수 있음에 유의한다.
만약에 나눠떨어지는 숫자의 개수가 같은 수가 여럿 있을 경우 그중 가장 큰 숫자를 출력한다.
![]() 4 2 3 4 6 3 2 3 6 4 2 3 5 7 8 2 3 5 6 7 9 11 12 0 |
![]() 2 3 7 3 |