寄CD?
时间限制:C/C++/Rust/Pascal 8秒,其他语言16秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小L 觉得构造题目背景真的太难了, 于是决定给你简化题面, 给你一个长度为 n 的序列 a, 接下来有 m 个 询问,
每个询问给出一个数 x, 你需要求出 的区间数量

的意思是

输入描述:

小 第一行包含一个整数 T  , 表示测试数据的数量
第二行包含两个整数 n, m 分别表示序列长度和询问的数量
第三行包含 n 个整数, 表示序列 a 中的每个元素
接下来 m 行, 每行一个整数 x

输出描述:

T 组数据, 每组数据共 m 行, 每行一个整数表示答案
示例1

输入

复制
1
5 2
1 2 3 4 5
1
2

输出

复制
11
1

说明

对于样例1: 区间 gcd = 1 的有:
[1,1], [1,2], [1,3], [1,4], [1,5], [2,3], [2,4],[2,5], [3,4], [3,5], [4,5]
区间 gcd = 2 的有: [2,2]

这里是[1,5] 是指的区间, 也就是a1,a2,a3,a4,a5
示例2

输入

复制
1
6 6
1 1 4 5 1 4
1
1
4
5
1
4

输出

复制
18
18 
2 
1 
18 
2
示例3

输入

复制
1
5 1
1 1 1 1 1
1

输出

复制
15