Task Description
考慮以下的演算法:
- 輸入 n
- 印出 n
- 如果 n=1 結束
- 如果 n 是奇數,那麼 n=3×n+1
- 否則 n=n/2
- 跳到第 2 行繼續執行
給一個輸入 n(0 < n < 1,000,000),透過此演算法可以得到一個數列(1作為結尾)。此數列的長度稱為 n 的cycle-length。上面提到的例子,n=22 的cycle length為16。
問題來了:對任兩個正整數 i、j,我們想要知道介於 i、j(包含 i、j)之間的正整數所產生的數列中,最大的 cycle length 是多少。
note:如果有部分測資出現TLE錯誤,可以將n = n / 2改為n = n // 2,可以縮短一些執行時間。
Input Format
輸入的第一列是一個正整數 m(1 ≤ m ≤ 50),代表以下有 m 列測試資料。
每列測試資料包含一對正整數資料 i、j(0 < i < j < 1,000,000)。
Output Format
對每一列測試資料,輸出介於 i、j(包含 i、j)之間的正整數所產生的數列中,最大的 cycle length。
Sample Input
5
1 10
15 25
100 200
201 210
900 1000
Sample Output
20
24
125
89
174