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:需要使用 list 以及整數除法 "//" 才有辦法縮減運算時間,否則可能會 TLE 而損失部分分數
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