최대공약수들의 최댓값
시간 제한1초메모리 제한2048 MB
정수 수열과 여러 구간이 주어질 때, 각 구간 안에서 서로 다른 두 위치의 수를 골라 얻는 최대공약수 중 가장 큰 값을 구합니다.
문제
정수 수열과 그 수열 위의 구간 여러 개가 주어진다. 구간은 가장 왼쪽 위치와 가장 오른쪽 위치로 지정된다. 개의 정수로 이루어진 구간에는 서로 다른 위치에 있는 정수 쌍이 개 있고, 각 쌍마다 최대공약수가 있다. 주어진 각 구간에 대해 이 최대공약수들 중 가장 큰 값을 구하라.
예를 들어 수열이 이고 전체 수열을 구간으로 지정하면, 서로 다른 위치 와 에 있는 정수 15쌍을 고려한다.
이 15쌍의 최대공약수 중 최댓값은 이다.
입력
입력은 한 개의 테스트 케이스로 이루어진다. 첫 줄에 수열의 정수 개수 ()이 주어진다. 둘째 줄에는 수열을 이루는 양의 정수 이 주어진다. 모든 값은 를 넘지 않는다. 셋째 줄에는 구간의 개수 ()가 주어진다. 이어지는 개의 줄에는 각각 구간 , ()가 주어지며, 이는 부터 까지의 구간을 뜻한다.
출력
개의 줄을 출력한다. 번째 줄에는 부터 까지 구간에 있는 모든 쌍의 최대공약수 중 최댓값을 출력한다.