CF BUDDY
← Problems·

475D · CGCDSSQ

2000 · brute force, data structures, math

Problem: Given a sequence of integers a1, ..., an and q queries x1, ..., xq on it. For each query xi you have to count the number of pairs (l, r) such that 1 ≤ l ≤ r ≤ n and gcd(al, al + 1, ..., ar) = xi.

gcd(v1,v2,,vn)\gcd(v_{1},v_{2},\ldots,v_{n}) is a greatest common divisor of v1, v2, ..., vn, that is equal to a largest positive integer that divides all vi.

Input Format: The first line of the input contains integer n, (1 ≤ n ≤ 105), denoting the length of the sequence. The next line contains n space separated integers a1, ..., an, (1 ≤ ai ≤ 109).

The third line of the input contains integer q, (1 ≤ q ≤ 3 × 105), denoting the number of queries. Then follows q lines, each contain an integer xi, (1 ≤ xi ≤ 109).

Output Format: For each query print the result in a separate line.

Sample Cases

Case 1

Input

3
2 6 3
5
1
2
3
4
6

Output

1
2
2
0
1

Case 2

Input

7
10 20 3 15 1000 60 16
10
1
2
3
4
5
6
10
20
60
1000

Output

14
0
2
2
2
0
2
2
1
1

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback