#include<bits/stdc++.h>
using namespace std;
#define Re register
const int N=1e5+10;
int n,m,a[N],k[N][23];
map<int,long long> cnt;
int GCD(int x,int y)
{
while(y)
{
x%=y;
swap(x,y);
}
return x;
}
inline void pregcd()
{
for(int i=1;i<=n;i++)k[i][0]=a[i];
for(int i=1;i<=22;i++)
{
for(int j=1;j+(1<<i)-1<=n;j++)
{
k[j][i]=GCD(k[j][i-1],k[j+(1<<(i-1))][i-1]);
}
}
}
inline int gcd(int l,int r)
{
if(r==n+1)return 66666666;
return GCD(k[l][(int)log2(r-l+1)],k[r-(1<<(int)log2(r-l+1))+1][(int)log2(r-l+1)]);
}
inline int search(int LL,int L,int R,int k)
{
Re int l=L,r=R,ans;
while(l<=r)
{
Re int mid=l+r>>1;
if(gcd(LL,mid)!=k)
{
ans=mid;
r=mid-1;
}else l=mid+1;
}
return ans;
}
int main()
{
scanf("%d",&n);
for(Re int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
pregcd();
for(Re int i=1;i<=n;i++)
{
int nowl=i;
while(nowl<=n)
{
Re int p=search(i,nowl+1,n+1,gcd(i,nowl));
cnt[gcd(i,nowl)]+=p-nowl;
nowl=p;
}
}
scanf("%d",&m);
for(Re int i=1;i<=m;i++)
{
int x;
scanf("%d",&x);
cout<<cnt[x]<<"\n";
}
return 0;
}