#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, q, f[N][20];
map<int, int> ans;
int gcd(int x, int y) {
while (y != 0) {
int r = x % y;
x = y;
y = r;
}
return x;
}
int query(int l, int r) {
int j = log2(r - l + 1);
return gcd(f[l][j], f[r - (1 << j) + 1][j]);
}
int search(int i, int t, int x) {
int l = t, r = n;
while (r - l > 5) {
int mid = (l + r) >> 1;
if (query(i, mid) >= x) l = mid;
else r = mid;
}
for (int k = r; k >= l; --k) {
if (query(i, k) == x) {
return k;
}
}
}
void solve(int x) {
int l = x, r = -1, Gcd = f[x][0];
while (1) {
if (r == n) break;
r = search(x, l, Gcd);
ans[Gcd] += r - l + 1;
Gcd = query(x, r + 1);
l = r + 1;
}
}
int main() {
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
cin >> n;
for (int i = 1; i <= n; ++i) cin >> f[i][0];
for (int j = 1; (1 << j) <= n; ++j) {
for (int i = 1; i + (1 << j) - 1 <= n; ++i) {
f[i][j] = gcd(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]);
}
}
for (int i = 1; i <= n; ++i) solve(i);
cin >> q;
while (q--) {
int x;
cin >> x;
cout << ans[x] << endl;
}
return 0;
}