转圈

Luogu
IDLGP10515
Time1000ms
Memory512MB
DifficultyP5
原根洛谷原创O2优化洛谷月赛
小 $\delta$ 喜欢转圈圈。 他有一个圈,被均匀分成了 $n$ 个格子,神奇的是,$n$ 是一个质数。第 $i$ 个格子上写着一个数 $i \times m$,他现在站在第一个格子上。 接下来他会看看脚下踩着的数是多少,然后向前走这么多格。他会一直反复这么做。 求最终被小 $\delta$ 踩到过的格子的数量。由于小 $\delta$ 有很多圈圈,所以他会问你很多次。 ## Input 第一行包含一个正整数 $T$,代表询问次数。 对于每组询问,输入一行两个正整数 $n,m$。 ## Output 对于每次询问,输出一行一个正整数,代表被踩到的格子的数量。 [samples] ## Note **【样例解释】** 以第一次询问为例,小 $\delta$ 依次经过的格子编号为 $1 \to 3 \to 4 \to 2 \to 1 \to \cdots$,因此被踩到过的格子个数为 $4$。 **【数据范围】** - 对于 $20\%$ 的数据,$n \le 10^3$,$T \le 2 \times 10^3$。 - 对于另外 $40\%$ 的数据,$T \le 3 \times 10^3$。 - 对于另外 $40\%$ 的数据,无特殊性质。 对于所有数据,$1 \le m < n \le 10^7$,$1 \le T \le 4 \times 10^5$。保证 $n$ 是质数。
Samples
Input #1
6
5 2
11 10
17 12
23 8
31 12
9999901 114514
Output #1
4
2
4
11
30
16260
API Response (JSON)
{
  "problem": {
    "name": "转圈",
    "description": {
      "content": "小 $\\delta$ 喜欢转圈圈。 他有一个圈,被均匀分成了 $n$ 个格子,神奇的是,$n$ 是一个质数。第 $i$ 个格子上写着一个数 $i \\times m$,他现在站在第一个格子上。 接下来他会看看脚下踩着的数是多少,然后向前走这么多格。他会一直反复这么做。 求最终被小 $\\delta$ 踩到过的格子的数量。由于小 $\\delta$ 有很多圈圈,所以他会问你很多次。",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10515"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "小 $\\delta$ 喜欢转圈圈。\n\n他有一个圈,被均匀分成了 $n$ 个格子,神奇的是,$n$ 是一个质数。第 $i$ 个格子上写着一个数 $i \\times m$,他现在站在第一个格子上。\n\n接下来他会看看脚下踩着的数是多少,然后向前走这么多格。他会一直反复这么做。\n\n求最终被小 $\\delta$ 踩到过的格子的数量。由于小 $\\delta$ 有很多圈圈,所以他会问你很多次。\n\n## Inpu...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments