袋鼠将军的传送门
题号:NC294824
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}袋鼠将军来到了环扎阿越王国。在环扎阿越王国里有 n 个岛屿,它们的编号分别为 1,2, \ldots, n,袋鼠将军可以通过魔法在岛屿之间传送。设当前袋鼠将军在编号为 x 的岛屿,当每次使用魔法时,它可以任选以下一种方法进行传送:
{\hspace{20pt}}_\texttt{1.}\,传送到编号为 x - 1 的岛屿;选择这种方法时,要求 x > 1
{\hspace{20pt}}_\texttt{2.}\,传送到编号为 x + 1 的岛屿;选择这种方法时,要求 x < n
{\hspace{20pt}}_\texttt{3.}\,传送到编号为 \left\lfloor \tfrac{n}{x} \right\rfloor 的岛屿。
\hspace{15pt}最开始,袋鼠将军在编号为 1 的岛屿,而袋鼠将军希望到达编号为 s 的岛屿。请求出袋鼠将军最少需要使用多少次魔法,才能到达编号为 s 的岛屿。

【名词解释】
\hspace{15pt}\lfloor x \rfloor 表示不超过 x 的最大整数,例如 \lfloor 4 \rfloor = 4\lfloor 1.2 \rfloor = 1\lfloor -2.5 \rfloor = -3

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 10^4\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}在一行上输入两个整数 n,s\left(1 \leq s \leq n \leq 10^{18}\right),表示环扎阿越王国的岛屿数量、袋鼠将军希望到达的岛屿编号。

输出描述:

\hspace{15pt}对于每组数据,新起一行输出一个整数,表示袋鼠将军最少需要使用魔法的次数。
示例1

输入

复制
3
1 1
5 2
7 6

输出

复制
0
1
2

说明

\hspace{15pt}对于第一组测试数据,袋鼠将军不需要使用任何魔法就可以到达编号为 1 的岛屿。 
\hspace{15pt}对于第二组测试数据,袋鼠将军只需要使用一次魔法,执行第 \texttt{2} 种操作,即可到达编号为 2 的岛屿。
\hspace{15pt}对于第三组数据,袋鼠将军可以先使用一次魔法,执行第 \texttt{3} 种操作,到达编号为 7 的岛屿,然后使用一次魔法,执行第 \texttt{1} 种操作,到达编号为 6 的岛屿。