#include<bits/stdc++.h>
using namespace std;
int i,j,n,q,x,y,t,k,ans,sum,a[100000][20];
map<int,long long int>mp;
int rmq(int l,int r){
int c=log10(r-l+1)/log10(2);
return __gcd(a[l][c],a[r-(1<<c)+1][c]);
}
int main(){
scanf("%d",&t);
for(k=1;k<=t;k++){
mp.clear();
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i][0]);
for(j=1;(1<<j)<=n;j++)
for(i=1;i+(1<<j)-1<=n;i++)
a[i][j]=__gcd(a[i][j-1],a[i+(1<<(j-1))][j-1]);
for(i=1;i<=n;i++){
int val=a[i][0],pos=i;
while(pos<=n){
val=rmq(i,pos);
int l=pos,r=n;
while(l<=r){
int mid=(l+r)/2;
if(rmq(i,mid)==val)l=mid+1;
else r=mid-1;
}
mp[val]+=r-pos+1;
pos=l;
}
}
scanf("%d",&q);
printf("Case #%d:\n",k);
while(q--){
scanf("%d%d",&x,&y);
ans=rmq(x,y);
printf("%d %lld\n",ans,mp[ans]);
}
}
return 0;
}