CGCDSSQ
题目描述
给定一个整数序列 a1,…,an,以及 q 个查询 x1,…,xq。对于每个查询 xi,你需要统计有多少对 (l,r) 满足 1≤l≤r≤n,并且 gcd(al,al+1,…,ar)=xi。
表示 v1,v2,…,vn 的最大公约数,即能整除所有 vi 的最大正整数。
输入格式
输入的第一行包含一个整数 n(1≤n≤105),表示序列的长度。接下来的一行包含 n 个由空格分隔的整数 a1,…,an(1≤ai≤109)。
输入的第三行包含一个整数 q(1≤q≤3×105),表示查询的数量。接下来的 q 行,每行包含一个整数 xi(1≤xi≤109)。
输出格式
对于每个查询,在单独的一行中输出结果。
样例 #1
样例输入
3
2 6 3
5
1
2
3
4
6
样例输出
1
2
2
0
1
样例 #2
样例输入
7
10 20 3 15 1000 60 16
10
1
2
3
4
5
6
10
20
60
1000
样例输出
14
0
2
2
2
0
2
2
1
1
说明/提示
由 ChatGPT 5 翻译