#CF2236F2. 萨兰斯克选举(困难版)

    ID: 18573 传统题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度暂无评定 上传者: 标签>CodeforcesCodeforces Round 1103 (Div. 3)

萨兰斯克选举(困难版)

题目描述

这是该问题的困难版本。唯一的区别在于 1x51051 \le x \le 5 \cdot 10^5

在买完他最喜欢的苏打水"Zola Cero"回家的路上,Egor 看到萨兰斯克正在举行"最佳数字"职位的选举。

投票站里有 nn 个人。每个人带来了一个数字 aia_i。当第 ii 个人进入投票间时,他们选择一个数字 aia_i约数作为候选人。设被选中的候选人为 pip_i

所有人都投票后,我们得到投票数组 [p1,p2,,pn][p_1, p_2, \ldots, p_n]

Egor 非常喜欢数字 xx,并且认为如果 xlcm(p1,p2,,pn)x \cdot {lcm}(p_1, p_2, \ldots, p_n)^{\text{∗}} = p1p2pnp_1 \cdot p_2 \cdot \ldots \cdot p_n,则此次投票是理想的。请帮他计算出理想投票的不同^{\text{†}}数组 pp 的数量,模 109+710^9 + 7

^{\text{∗}}lcmlcm — 最小公倍数

^{\text{†}}若两个投票数组在某个下标 ii 处的元素不同,则称它们为不同的

输入格式

第一行包含一个整数 tt1t1041 \leq t \leq 10^4)——测试用例的数量。

接下来有 tt 个测试用例。

每个测试用例的第一行包含两个整数 nnxx1n1051 \leq n \leq 10^51x51051 \leq x \leq 5 \cdot 10^5)——投票站的选民人数与 Egor 的幸运数字。

每个测试用例的第二行包含 nn 个整数:a1,a2,,ana_1, a_2, \dots, a_n1ai51051 \leq a_i \leq 5 \cdot 10^5)——选民带来的数字。

保证所有测试用例的 nn 之和不超过 10510^5

输出格式

对于每个测试用例,输出投票方案数模 109+710^9 + 7 的结果,使得最终的投票数组满足条件。

样例

5
2 2
2 4
1 5
5
7 4
2 4 8 13 111 6 7
3 1000
1 2 3
3 3
4 8 10
2
0
360
0
0