#qm03. 座位跳跃

座位跳跃

题目描述:

在某个聚会上,有 nn 个座位围成一个圆圈,编号依次为 0,1,2,,n10, 1, 2, \dots, n-1。初始坐在 00 号座位上。 为了活跃气氛,小陶决定玩一个跳跃游戏:他每次会顺时针跳过 kk 个座位。 也就是说,如果他当前在第 ii 号座位,下一次他会跳到第 (i+k)modn(i + k) \bmod n 号座位。 小陶会一直这样跳下去,直到他跳回了起点 00 号座位。请问,在这个过程中(包括起点 00 和最后回到 00 的那一次),小陶一共坐过多少个不同的座位?

输入格式:

输入在一行中给出两个正整数 nnk(1n,k1012)k (1 \le n, k \le 10^{12}),分别代表座位的总数和每次跳跃的步长。

输出格式:

在一行中输出一个小陶能坐到的不同座位的数量。

输入样例 1:

10 3

输出样例 1:

10

输入样例 2:

12 4

输出样例 2:

3

样例解释:

  • 在第一个样例中,跳跃路径为 0 -> 3 -> 6 -> 9 -> 2 -> 5 -> 8 -> 1 -> 4 -> 7 -> 0。一共经过了 10 个不同的座位。
  • 在第二个样例中,跳跃路径为 0 -> 4 -> 8 -> 0。一共经过了 3 个不同的座位。