#P1331. Multiply

Multiply

题目描述

"69=42""6 * 9 = 42"十进制(基数为1010)下不成立,但在基数为1313时成立。即,6(13)9(13)=42(13)6(13) * 9(13) = 42(13),因为 42(13)=4131+2130=54(10)42(13) = 4 * 13¹ + 2 * 13⁰ = 54(10)

你需要编写一个程序,输入三个整数 pqrp、q 和 r,并确定满足pq=r p * q = r 的基数 B2B16B(2 ≤ B ≤ 16)。如果有多个可能的 BB输出最小的一个。例如,当 p=11q=11r=121p = 11、q = 11、r = 121 时,$$11(3) * 11(3) = 121(3)$$ 成立,因为:

11(3)=131+130=4(10)11(3) = 1 * 3¹ + 1 * 3⁰ = 4(10) 121(3)=132+231+130=16(10)121(3) = 1 * 3² + 2 * 3¹ + 1 * 3⁰ = 16(10)

而对于基数1010,同样有 11(10)11(10)=121(10)11(10) * 11(10) = 121(10)。此时,你的程序应输出最小的基数 33。如果没有满足条件的 BB,则输出 00

输入

输入包含 TT 个测试用例。测试用例的数量 TT 在第一行给出。每个测试用例由一行中的三个整数 pqrp、q 和 r 组成。pqrp、q 和 r 的所有字符均为数字,且 1p,q,r1,000,0001 ≤ p, q, r ≤ 1,000,000

输出

对于每个测试用例,输出一行,包含一个整数,即满足 pq=rp * q = r 的最小基数 BB。如果没有这样的基数,则输出 00

输入样例

3
6 9 42
11 11 121
2 2 2

输出样例

13
3
0

题目来源

Taejon 2002