#8314. 小 Z 的整除问题

0

小 Z 的整除问题

输入文件:division.in

输出文件:division.out

时间限制: 1s

空间限制: 128M

题目描述

小 Z 非常喜欢数学,小 Y 准备考考小 Z 的数学能力。

小 Y 会跟小 Z 提出 tt 个问题,每个问题都会给出两个整数 pp 和 qq,问满足 x∣px \mid p 但 q∤xq \nmid x 的最大的整数 xx 是多少?

提示:

  1. a∣ba \mid b 表示 aa 整除 bb,即 aa 是 bb 的因数,bb 是 aa 的倍数;a∤ba \nmid b 表示 aa 不能整除 bb,表示 aa 不是 bb 的因数

  2. 题意可以描述成,找到一个最大的 xx,使得 xx 是 pp 的因数,但 xx 不是 qq 的倍数。

输入格式

第一行输入一个整数 tt 表示询问次数。

接下来 tt 行,每行输入两个整数 pp 和 qq。

输出格式

输出共 tt 行,一行一个整数表示答案。

样例 #1

样例输入 #1

3
10 4
12 6
179 822

样例输出 #1

10
4
179

提示

【样例解释】

  • 第一次询问,1010 本身就不是 44 的倍数,所以输出 1010;

  • 第二次询问,1212 的因数有 1,2,3,4,6,121,2,3,4,6,12,其中 44 是最大的不是 66 的倍数的数。

【数据范围】

对于 30%30\% 的数据,1≤t≤10,1≤p≤107,2≤q≤1041\le t \le 10, 1 \le p \le 10^7, 2 \le q \le 10^4。

对于 60%60\% 的数据,$1\le t \le 30, 1 \le p \le 10^{12}, 2 \le q \le 10^6$。

对于 100%100\% 的数据,$1\le t \le 50, 1 \le p \le 10^{18}, 2 \le q \le 10^9$。