2490: 数学游戏

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Normal Judger Creator:
Submit:6 Solved:2

Description

题⽬描述

Kri 喜欢玩数字游戏。

⼀天,他在草稿纸上写下了 t 对正整数 (x,y),并对于每⼀对正整数计算出了 z=x × y × gcd(x,y)

可是调⽪的 Zay 找到了 Kri 的草稿纸,并把每⼀组的 y 都擦除了,还可能改动了⼀些 z

现在 Kri 想请你帮忙还原每⼀组的 y,具体地,对于每⼀组中的 x z,你需要输出最小的正整数 y 使得z=x × y × gcd(x,y) 。如果这样的 y不存在,也就是 Zay ⼀定改动了 z,那么请输出 -1

注: gcd(x,y)表⽰ x  y 的最⼤公约数,也就是最⼤的正整数 d,满⾜ d既是 x 的约数,⼜是 y 约数。

Input

输⼊格式

第⼀⾏⼀个整数 t,表⽰有 t 对正整数x  z

接下来 t ⾏,每⾏两个正整数 x  z,含义⻅题⽬描述。

Output

输出格式

对于每对数字输出⼀⾏,如果不存在满⾜条件的正整数 y,请输出

-1,否则输出满⾜条件的最小正整数 y

Sample Input Copy

1
10 240 

Sample Output Copy

12

HINT

样例 1 解释

 X*y*gcd(x,y)=10*12*gcd(10,12)=240

样例 2 输⼊

3

5 30

4 8

11 11

样例 2 输出

6

-1

1

附加样例

⻅样例⽬录下的 math3.in  math3.out ,以及 math4.in  math4.out

数据范围

对于 20% 的数据, t,x,z103

对于 40% 的数据, t103,x106,z106

对于另 30% 的数据, t104

对于另 20 % 的数据, x106

对于 100% 的数据,1t5*105,1x109,1z263

Source/Category