#D. 小 Z 的整除问题

    Type: Default 1000ms 512MiB

小 Z 的整除问题

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

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

小 Y 会跟小 Z 提出 tt 个问题,每个问题都会给出两个整数 ppqq,问满足 xpx \mid pqxq \nmid x 的最大的整数 xx 是多少?

提示:

  1. aba \mid b 表示 aa 整除 bb,即 aabb 的因数,bbaa 的倍数;aba \nmid b 表示 aa 不能整除 bb,表示 aa 不是 bb 的因数

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

输入格式

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

接下来 tt 行,每行输入两个整数 ppqq

输出格式

输出共 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\% 的数据,1t10,1p107,2q1041\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$。

竞赛班集训2———枚举算法2

Not Attended
Status
Done
Rule
IOI
Problem
5
Start at
2024-10-12 16:45
End at
2024-10-14 16:45
Duration
48 hour(s)
Host
Partic.
7