20043 - GCD

给定两个整数 ab,每一轮你可以执行以下两种操作之一:

  • 如果 a > 0,则将 a 的值减少 \gcd(a, b)
  • 如果 b > 0,则将 b 的值减少 \gcd(a, b)

Grace 想知道使得 ab 都变为 0 所需的最少轮数。

注意: \gcd(x, y) 表示 xy 的最大公约数。例如,\gcd(6, 8) = 2\gcd(7, 5) = 1\gcd(x, 0)\gcd(0, x) 的值定义为 x

输入

每个测试文件包含多个测试用例。第一行包含测试用例的数量 T1 \le T \le 1000)。

接下来是测试用例的描述。

每个测试用例占一行,包含两个整数 ab1 \le a \le ba \le 5000b \le 10^{18})。

对于每个测试文件,保证所有测试用例的 a 之和不超过 10^4

输出

对于每个测试用例,输出一个整数,表示使 ab 都变为 0 所需的最少轮数。

样例

输入

3
2 3
1 5
4 6

输出

2
3
4

提示

第一个测试用例: a = 2, b = 3

一种最优方案如下:

  1. b 操作:b = 3 - \gcd(2, 3) = 3 - 1 = 2,状态变为 (2, 2)
  2. a 操作:a = 2 - \gcd(2, 2) = 2 - 2 = 0,状态变为 (0, 2)
  3. b 操作:b = 2 - \gcd(0, 2) = 2 - 2 = 0,状态变为 (0, 0)
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题