#P8255. [NOI Online 2022 入门组] 数学游戏

[NOI Online 2022 入门组] 数学游戏

题目背景

经过管理员的考虑,我们打算将民间数据单独存放在最后一个 Subtask 中。这些测试点分数均为 0 分,但是没有通过其中的任何测试点将会视为此题不通过。

民间数据提供者:@一扶苏一。本题不保证民间数据强度,详见这个帖子

题目描述

Kri 喜欢玩数字游戏。

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

可是调皮的 Zay 找到了 Kri 的草稿纸,并把每一组的 yy 都擦除了,还可能改动了一些 zz

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

注:gcd(x,y)\gcd(x,y) 表示 xxyy 的最大公约数,也就是最大的正整数 dd,满足 dd 既是 xx 的约数,又是 yy 的约数。

输入格式

第一行一个整数 ,表示有 tt 对正整数 xxzz

接下来 tt 行,每行两个正整数 xxzz,含义见题目描述。

输出格式

对于每对数字输出一行,如果不存在满足条件的正整数 yy,请输出 1-1,否则输出满足条件的最小正整数 yy

1
10 240
12
3
5 30
4 8
11 11
6
-1
1
见附件中的 math3.in
见附件中的 math3.out
见附件中的 math4.in
见附件中的 math4.out

提示

【样例 1 解释】

$x\times y\times \gcd(x,y)=10\times 12\times\gcd(10,12)=240$。

【数据范围】

对于 20%20\% 的数据,t,x,z103t, x, z \le {10}^3

对于 40%40\% 的数据,t103t \le {10}^3x106x \le {10}^6z109z \le {10}^9

对于另 30%30\% 的数据,t104t \le {10}^4

对于另 20%20\% 的数据,x106x \le {10}^6

对于 100%100\% 的数据,1t5×1051 \le t \le 5 \times {10}^51x1091 \le x \le {10}^91z<2631 \le z < 2^{63}