#include <bits/stdc++.h>
#define maxn 100005
#define MOD 1000000007
using namespace std;
typedef long long ll;
map<int, int> m[2];
map<int, ll> ans;
int num[maxn];
int gcd(int a, int b){
return b ? gcd(b, a % b) : a;
}
int main(){
// freopen("in.txt", "r", stdin);
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++)
scanf("%d", num+i);
map<int, int> ::iterator iter;
int k = 0;
for(int i = 0; i < n; i++){
for(iter = m[k].begin(); iter != m[k].end(); iter++){
m[k^1][gcd(iter->first, num[i])] += iter -> second;
}
m[k^1][num[i]] += 1;
m[k].clear();
k ^= 1;
for(iter = m[k].begin(); iter != m[k].end(); iter++){
ans[iter->first] += iter -> second;
}
}
int q, a;
scanf("%d", &q);
while(q--){
scanf("%d", &a);
printf("%I64d\n", ans[a]);
}
return 0;
}
Codeforces457-D. CGCDSSQ
最新推荐文章于 2022-10-27 14:21:39 发布