#include<bits/stdc++.h>
using namespace std;
// Numeric Constants
#define N 1000000007
#define maxs 1000005
#define mins 1005
#define eps 1e-14
#define imax 2000000200
#define llmax 1000000002000000000ll
#define pi 3.141592653589793
// Others
#define ll long long
#define pb push_back
#define gc getchar_unlocked
#define iosbase ios_base::sync_with_stdio(false)
#define pii pair<int,int>
#define pll pair<ll,ll>
#define ppi pair<pair<int,int>,int>
#define ppl pair<pll,ll>
#define vi vector<int>
#define sc scanf
#define pr printf
#define lld I64d
#define F first
#define S second
#define siter set<int>::iterator
#define p_pq priority_queue
#define ub upper_bound
#define lb lower_bound
ll ans[maxs],a[maxs],mark[maxs],cnts[maxs];
ll tot[maxs];
ll power(ll a,ll b,ll c){
ll t=1;
while(b){
if(b&1){
t=(t*a)%N;
}
a=(a*a)%N;
b>>=1;
}
return t;
}
int main()
{
int n,q,i,j,t,k;
sc("%d",&n);
for(i=0;i<n;i++){
sc("%lld",&a[i]);
cnts[a[i]]++;
}
for(i=1;i<=1000000;i++){
for(j=i,t=1;j<=1000000;j+=i,t++){
if(i!=t){
tot[j]+=cnts[i]*cnts[t];
}
else{
tot[j]+=cnts[i]*(cnts[i]-1);
}
tot[j]%=N;
}
}
for(i=1;i<=1000000;i++){
for(j=i;j<=1000000;j+=i){
ans[j]+=tot[i];
ans[j]%=N;
}
}
for(i=1;i<=1000000;i++){
ans[i]=(ans[i]*power(2,N-2,N));
ans[i]%=N;
}
sc("%d",&q);
for(i=0;i<q;i++){
sc("%d",&k);
pr("%lld\n",ans[k]);
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIE51bWVyaWMgQ29uc3RhbnRzCiNkZWZpbmUgTiAxMDAwMDAwMDA3CiNkZWZpbmUgbWF4cyAxMDAwMDA1CiNkZWZpbmUgbWlucyAxMDA1CiNkZWZpbmUgZXBzIDFlLTE0CiNkZWZpbmUgaW1heCAyMDAwMDAwMjAwCiNkZWZpbmUgbGxtYXggMTAwMDAwMDAwMjAwMDAwMDAwMGxsCiNkZWZpbmUgcGkgMy4xNDE1OTI2NTM1ODk3OTMKCi8vIE90aGVycwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGdjIGdldGNoYXJfdW5sb2NrZWQKI2RlZmluZSBpb3NiYXNlIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBwbGwgcGFpcjxsbCxsbD4KI2RlZmluZSBwcGkgcGFpcjxwYWlyPGludCxpbnQ+LGludD4KI2RlZmluZSBwcGwgcGFpcjxwbGwsbGw+CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSBzYyBzY2FuZgojZGVmaW5lIHByIHByaW50ZgojZGVmaW5lIGxsZCBJNjRkCiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiNkZWZpbmUgc2l0ZXIgc2V0PGludD46Oml0ZXJhdG9yCiNkZWZpbmUgcF9wcSBwcmlvcml0eV9xdWV1ZQojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgbGIgbG93ZXJfYm91bmQKCmxsIGFuc1ttYXhzXSxhW21heHNdLG1hcmtbbWF4c10sY250c1ttYXhzXTsKbGwgdG90W21heHNdOwoKbGwgcG93ZXIobGwgYSxsbCBiLGxsIGMpewoJbGwgdD0xOwoJd2hpbGUoYil7CgkJaWYoYiYxKXsKCQkJdD0odCphKSVOOwoJCX0KCQlhPShhKmEpJU47CgkJYj4+PTE7Cgl9CglyZXR1cm4gdDsKfQoKaW50IG1haW4oKQp7CglpbnQgbixxLGksaix0LGs7CglzYygiJWQiLCZuKTsKCWZvcihpPTA7aTxuO2krKyl7CgkJc2MoIiVsbGQiLCZhW2ldKTsKCQljbnRzW2FbaV1dKys7Cgl9Cglmb3IoaT0xO2k8PTEwMDAwMDA7aSsrKXsKCQlmb3Ioaj1pLHQ9MTtqPD0xMDAwMDAwO2orPWksdCsrKXsKCQkJaWYoaSE9dCl7CgkJCQl0b3Rbal0rPWNudHNbaV0qY250c1t0XTsKCQkJfQoJCQllbHNlewoJCQkJdG90W2pdKz1jbnRzW2ldKihjbnRzW2ldLTEpOwoJCQl9CgkJCXRvdFtqXSU9TjsKCQl9Cgl9Cglmb3IoaT0xO2k8PTEwMDAwMDA7aSsrKXsKCQlmb3Ioaj1pO2o8PTEwMDAwMDA7ais9aSl7CgkJCWFuc1tqXSs9dG90W2ldOwoJCQlhbnNbal0lPU47CgkJfQoJfQoJZm9yKGk9MTtpPD0xMDAwMDAwO2krKyl7CgkJYW5zW2ldPShhbnNbaV0qcG93ZXIoMixOLTIsTikpOwoJCWFuc1tpXSU9TjsKCX0KCXNjKCIlZCIsJnEpOwoJZm9yKGk9MDtpPHE7aSsrKXsKCQlzYygiJWQiLCZrKTsKCQlwcigiJWxsZFxuIixhbnNba10pOwoJfQoJcmV0dXJuIDA7Cn0=