#CF1933C. C. 龟龟数手指:统计 k 的可能取值

C. 龟龟数手指:统计 k 的可能取值

C. 龟龟数手指:统计 k 的可能取值

每次测试的时间限制:5 秒
每次测试的内存限制:256 兆字节


题目描述

给定三个正整数 aabbll (满足 a,b,l>0a, b, l > 0)。

可以证明,总是存在一种方式,选择三个非负整数(即 0\ge 0kkxxyy,使得

l=kaxbyl = k \cdot a^x \cdot b^y

你的任务是:在所有可能的表示方式中,统计 kk 有多少个不同的可能取值。


输入格式

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

接下来的 tt 行,每行包含三个整数 aabbll2a,b1002 \le a, b \le 1001l1061 \le l \le 10^6) —— 每个测试用例的描述。


输出格式

输出 tt 行,第 ii 行(1it1 \le i \le t)包含一个整数,表示第 ii 个测试用例的答案。


输入输出样例

输入

11
2 5 20
2 5 21
4 6 48
2 3 72
3 5 75
2 2 1024
3 7 83349
100 100 1000000
7 3 2
2 6 6
17 3 632043

输出

6
1
5
12
6
11
24
4
1
3
24

样例解释

第一个测试用例a=2,b=5,l=20a = 2, b = 5, l = 20
可能的 kk 值(以及对应的 x,yx, y)如下:

  • k=1k = 1x=2x = 2y=1y = 112251=20=l1 \cdot 2^2 \cdot 5^1 = 20 = l
  • k=2k = 2x=1x = 1y=1y = 122151=20=l2 \cdot 2^1 \cdot 5^1 = 20 = l
  • k=4k = 4x=0x = 0y=1y = 142051=20=l4 \cdot 2^0 \cdot 5^1 = 20 = l
  • k=5k = 5x=2x = 2y=0y = 052250=20=l5 \cdot 2^2 \cdot 5^0 = 20 = l
  • k=10k = 10x=1x = 1y=0y = 0102150=20=l10 \cdot 2^1 \cdot 5^0 = 20 = l
  • k=20k = 20x=0x = 0y=0y = 0202050=20=l20 \cdot 2^0 \cdot 5^0 = 20 = l

共 6 种不同的 kk


第二个测试用例a=2,b=5,l=21a = 2, b = 5, l = 21
注意到 l=21l = 21 既不能被 a=2a = 2 整除,也不能被 b=5b = 5 整除。因此只能取 x=0,y=0x = 0, y = 0,对应 k=21k = 21
共 1 种不同的 kk


第三个测试用例a=4,b=6,l=48a = 4, b = 6, l = 48
可能的 kk 值(以及对应的 x,yx, y)如下:

  • k=2k = 2x=1x = 1y=1y = 124161=48=l2 \cdot 4^1 \cdot 6^1 = 48 = l
  • k=3k = 3x=2x = 2y=0y = 034260=48=l3 \cdot 4^2 \cdot 6^0 = 48 = l
  • k=8k = 8x=0x = 0y=1y = 184061=48=l8 \cdot 4^0 \cdot 6^1 = 48 = l
  • k=12k = 12x=1x = 1y=0y = 0124160=48=l12 \cdot 4^1 \cdot 6^0 = 48 = l
  • k=48k = 48x=0x = 0y=0y = 0484060=48=l48 \cdot 4^0 \cdot 6^0 = 48 = l

共 5 种不同的 kk