#include using namespace std; #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) #define memo(a,v) memset(a,v,sizeof(a)) #define pb push_back #define all(a) a.begin(),a.end() #define eps (1e-9) #define inf (1<<29) #define i64 long long #define u64 unsigned i64 #define AIN(a,b,c) assert(a<=b && b<=c) #define MAXN 100000 #define MAXK 100000 typedef pair pii; int a[MAXN+5],A[MAXN+5],B[MAXN+5]; int gcd1(int a,int b){ if(b == 0) return a; return gcd1(b,a%b); } int gcd(int a,int b){ if(a0;i--){ B[i] = gcd(B[i+1],a[i]); } while(q--){ scanf("%d %d",&L,&R); AIN(1,L,R); AIN(L,R,n); assert(n - R + L - 1 > 0); printf("%d\n",gcd(A[L-1],B[R+1])); } } AIN (1, cnt, 1000000); return 0; }