CF1444A Division

题目描述

Oleg 最喜欢的科目是历史和数学,他最喜欢的数学分支是除法。 为了提升自己的除法能力,Oleg 想出了 $t$ 对整数 $p_i$ 和 $q_i$,并且对于每一对,他决定找到最大的整数 $x_i$,使得: - $p_i$ 能被 $x_i$ 整除; - $x_i$ 不能被 $q_i$ 整除。 Oleg 非常擅长除法,很快就找到了所有答案,你能做到吗?

输入格式

第一行包含一个整数 $t$($1 \le t \le 50$),表示整数对的数量。 接下来的 $t$ 行,每行包含两个整数 $p_i$ 和 $q_i$($1 \le p_i \le 10^{18}$;$2 \le q_i \le 10^{9}$),表示第 $i$ 对整数。

输出格式

输出 $t$ 个整数,第 $i$ 个整数表示最大的 $x_i$,满足 $p_i$ 能被 $x_i$ 整除,且 $x_i$ 不能被 $q_i$ 整除。 可以证明,在给定的约束条件下,总是存在至少一个满足条件的 $x_i$。

说明/提示

对于第一对数,$p_1 = 10$,$q_1 = 4$,答案是 $x_1 = 10$,因为 $10$ 是 $10$ 的最大约数,且 $10$ 不能被 $4$ 整除。 对于第二对数,$p_2 = 12$,$q_2 = 6$,注意: - $12$ 不是合法的 $x_2$,因为 $12$ 能被 $q_2 = 6$ 整除; - $6$ 也不是合法的 $x_2$,因为 $6$ 也能被 $q_2 = 6$ 整除。 $12$ 的下一个约数是 $4$,它不能被 $6$ 整除,因此答案是 $4$。 由 ChatGPT 4.1 翻译