#P8302. [CoE R4 B/Stoi2041] 龙拳

    ID: 7151 Type: RemoteJudge 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>模拟数学数论洛谷原创O2优化枚举洛谷月赛

[CoE R4 B/Stoi2041] 龙拳

题目背景

题目描述

对于 n∈Z≥2n \in \mathbb{Z_{\ge 2}},设 g(n)g(n) 为 nn 的小于 nn 的最大约数,如 g(7)=1,g(12)=6g(7) = 1, g(12) = 6。

定义 f(n)=n+g(n)f(n) = n + g(n)。记 f(0)(n)=nf^{(0)}(n)=n,且对 m∈Z≥0m \in \mathbb{Z_{\ge 0}} 有 f(m+1)(n)=f(f(m)(n))f^{(m+1)}(n)=f(f^{(m)}(n))。

多次询问,每次询问给定正整数 n,kn,k,求最小的自然数 m0m_0,使得对于任意 m≥m0m \ge m_0,均有 f(m)(n)∣f(m+k)(n)f^{(m)}(n) \mid f^{(m+k)}(n)。

若不存在这样的 m0m_0,则令 m0=−1m_0=-1。

输入格式

第一行一个正整数 TT 表示询问次数。

接下来 TT 行,每行两个正整数 n,kn,k,表示一次询问。

输出格式

对于每组询问输出一个整数表示答案。

2
2 3
3 4

0
-1

提示

样例解释

当 n=2,k=3n=2,k=3 时,m0=0m_0=0。

当 n=3,k=4n=3,k=4 时不存在满足条件的 m0m_0。


数据规模

本题采用捆绑测试。

  • 子任务 11(11 分):T=k=1T=k=1;
  • 子任务 22(1212 分):T,n,k≤10T,n,k \le 10;
  • 子任务 33(2424 分):T≤10,n≤105T \le 10,n \le 10^5;
  • 子任务 44(3636 分):T≤103T \le 10^3;
  • 子任务 55(2727 分):无特殊限制。

对于 100%100\% 的数据,保证 1≤T≤2×1061 \le T \le 2 \times 10^6,2≤n≤3×1072 \le n \le 3 \times 10^7,1≤k≤1091 \le k \le 10^9。