밤블비의 고장
시간 제한2초메모리 제한1024 MB
배열의 각 구간에 대해 공집합이 아닌 모든 부분집합의 mex 값들에 대한 gcd를 구합니다.
문제
밤블비는 디셉티콘과 싸운 뒤 고장이 났다. 지금 그는 이상한 문제를 풀려고 한다. 문제 조건은 다음과 같다.
양의 자연수 집합에 대해 두 함수를 정의한다. 첫 번째 함수는 으로, 중에 없는 가장 작은 양의 자연수이다. 두 번째 함수는 으로, 의 최대공약수이다. 밤블비는 자연수 배열을 만들었고, 다음 연산을 하고 싶어 한다. 주어진 , 에 대해 배열의 부터 까지 구간의 모든 부분집합을 나열하고, 공집합이 아닌 각 부분집합의 를 구한 뒤, 얻은 모든 의 를 계산한다. (이때 는 개가 나온다는 것을 쉽게 알 수 있다.)
밤블비의 계산 능력으로는 이 문제를 빠르게 풀 수 없다. 그를 도와라.
입력
첫 줄에 배열의 길이 ()이 주어진다.
둘째 줄에는 공백으로 구분된 개의 정수 ()가 주어진다.
셋째 줄에는 질의의 개수 ()가 주어진다.
이후 개의 줄에 각각 두 정수 , ()이 주어진다. 이는 함수의 값을 구해야 하는 구간이다.
출력
개의 줄을 출력한다. 번째 줄에는 번째 질의의 답을 출력한다.