#CF1350A. Orac 与因数
Orac 与因数
题目描述
每个测试的时间限制:2 秒
每个测试的内存限制:256 兆字节
Orac 正在研究数论,他对因数的性质很感兴趣。
对于两个正整数 和 ,如果存在整数 使得 ,则称 是 的因数。
对于 ,我们记 为 的最小正因数(除了 以外)。
例如:,,。
对于给定的整数 ,Orac 决定将 加到 上。
例如,如果他有 ,那么新的 将变为 。如果他有 ,那么 将变为 。
Orac 非常喜欢这个过程,所以他决定重复这个操作多次。
现在,对于两个正整数 和 ,Orac 要求你恰好执行 次操作:每次将 加到当前的 上(注意 在每次操作后会变化,因此 也可能变化),然后告诉他 的最终值。
例如,如果 Orac 给你 和 ,首先将 加到 上,得到 ;然后加上 ,得到最终值 。
Orac 可能会多次询问你。
输入格式
第一行包含一个整数 ()—— 询问的次数。
接下来的 行,每行包含两个正整数 (,),对应 Orac 的一个询问。
保证所有询问的 之和不超过 。
输出格式
输出 行,其中第 行应包含第 个询问中 的最终值。
3
5 1
8 2
3 4
10
12
12
说明
- 第一个询问:,。 的因数为 和 ,除了 以外的最小因数为 。因此操作将 加到 ,结果为 。
- 第二个询问:,。 的因数为 ,除了 以外的最小因数为 。第一次操作后 变为 。 的因数为 ,除了 以外的最小因数为 。第二次操作后变为 。
- 第三个询问: 的变化过程为:$3 \rightarrow 6 \rightarrow 8 \rightarrow 10 \rightarrow 12$。