小Why的数论测试
题号:NC253688
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定两个整数 a,b\ (a \leq b),在一次操作中,你可以选择以下三个操作中的任意一个进行操作:
\bullet \ a:=a+1
\bullet \ a:=2a
\bullet \ a:=a^2
请求出将 a 变成 b 的最少操作次数。

输入描述:

第一行包含一个整数 T \ (1 \leq T\leq 50),表示测试用例的组数。
每组测试用例的第一行包含两个整数 a,b \ (1\leq a\leq b\leq10^{12})

输出描述:

对于每组测试用例,输出一个整数,表示最少操作次数。
示例1

输入

复制
3
1 1
1 20
10 10000

输出

复制
0
5
2

说明

对于第二组测试用例:1→2→3→9→10→20
对于第三组测试用例:10→100→10000