#CF2020F. 统计叶子节点

统计叶子节点

F. 统计叶子节点

时间限制:4 秒 内存限制:256 兆字节

给定正整数 nndd。我们按照如下规则构造除数树 Tn,dT_{n,d}

  • 树的根节点标记为数字 nn,位于第 00 层。
  • 对于每个 ii(从 00d1d-1),对第 ii 层的每个节点执行以下操作:若当前节点标记为 xx,则为它创建所有不同的正除数 yy 作为子节点,这些子节点位于第 i+1i+1 层。
  • dd 层的所有节点就是这棵树的叶子节点

例如,T6,2T_{6,2}n=6,  d=2n=6,\;d=2 的除数树)结构如下:

根为 6 → 第 1 层是 6 的所有除数 → 第 2 层是每个节点的所有除数,即为叶子

定义 f(n,d)f(n,d) 为除数树 Tn,dT_{n,d} 的叶子节点数量。

给定整数 n,k,dn, k, d,请计算:

i=1nf(ik,d)\sum_{i=1}^n f(i^k, d)

答案对 109+710^9+7 取模。

† 在本题中,若 y1y \ge 1 且存在整数 zz 使得 x=yzx = y \cdot z,则称 yyxx 的除数。


输入格式

每个测试文件包含多组测试用例。 第一行输入测试用例数量 tt1t1041 \le t \le 10^4)。

每组测试用例仅一行,包含三个整数 n,k,dn, k, d

  • 1n1091 \le n \le 10^9
  • 1k,d1051 \le k,d \le 10^5

数据保证:所有测试用例的 nn 之和不超过 10910^9


输出格式

对于每组测试用例,输出上述求和式的结果,对 109+710^9+7 取模。


样例输入

3
6 1 1
1 3 3
10 1 2

样例输出

14
1
53

样例解释

  • 第一个测试用例n=6,  k=1,  d=1n=6,\;k=1,\;d=1 需要计算 T1,1,T2,1,,T6,1T_{1,1},T_{2,1},\dots,T_{6,1} 的叶子总数。

    • T1,1T_{1,1}11 片叶子
    • T2,1T_{2,1}22 片叶子
    • T3,1T_{3,1}22 片叶子
    • T4,1T_{4,1}33 片叶子
    • T5,1T_{5,1}22 片叶子
    • T6,1T_{6,1}44 片叶子 总和:1+2+2+3+2+4=141+2+2+3+2+4=14
  • 第二个测试用例n=1,  k=3,  d=3n=1,\;k=3,\;d=3 仅需计算 T13=1,3T_{1^3=1,3},叶子数量为 11

  • 第三个测试用例n=10,  k=1,  d=2n=10,\;k=1,\;d=2 求和结果为 5353