Задачи
Задача 3n + 1
Задача 3n + 1
Рассмотрим следующий алгоритм генерации последовательности чисел: 1. input \textbf{n} 2. print \textbf{n} 3. if \textbf{n} = \textbf{1} then STOP 4. if \textbf{n} is odd then \textbf{n} = \textbf{3} * \textbf{n} + \textbf{1} 5. else \textbf{n} = \textbf{n} / \textbf{2} 6. GOTO \textbf{2}
Например, для \textbf{n} = \textbf{22} будет сгенерирована следующая последовательность чисел:
\textbf{22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1}
Полагают (но это еще не доказано), что этот алгоритм сойдется к \textbf{n} = \textbf{1} для любого целого \textbf{n}. По крайней мере, это предположение верно для всех целых \textbf{n}, для которых \textbf{0} < \textbf{n} < \textbf{1,000,000}.
Длиной цикла числа \textbf{n} будем называть количество сгенерированных чисел в последовательности включая \textbf{1}. В приведенном примере длина цикла числа \textbf{22} равна \textbf{16}.
Для двух заданных чисел \textbf{i} и \textbf{j} необходимо найти максимальную длину цикла среди всех чисел между \textbf{i} и \textbf{j} включительно.
\InputFile
Каждый тест задается в отдельной строке и содержит пару целых чисел \textbf{i} и \textbf{j}. Входные числа будут меньше \textbf{1000000} и больше \textbf{0}. Считайте, что для вычислений достаточно использовать \textbf{32} битный целочисленный тип.
\OutputFile
Для каждой пары чисел \textbf{i} и \textbf{j} выведите числа \textbf{i} и \textbf{j} в том же порядке, в каком они поступили на вход. После чего выведите максимальную длину цикла среди всех целых чисел между \textbf{i} и \textbf{j} включительно. Для каждого теста три числа следует выводить в отдельной строке, разделяя одним пробелом.
Входные данные #1
1 10 100 200 201 210 900 1000
Выходные данные #1
1 10 20 100 200 125 201 210 89 900 1000 174