3xN+1

  • Проблема 3xN+1
    PROBLEM 3xN+1


Описание

Рассмотрим такой алгоритм:

  1. Ввести число N

  2. Напечатать N

  3. Если N равно 1, то остановка

  4. Если N нечетное, то N=3xN+1

  5. Иначе N=N/2

  6. Перейти на шаг 2

Если на вход алгоритма подать число 22, то будет распечатана такая последовательность чисел: 
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

Было сделано предположение, что данный алгоритм останавливается для любого целого числа N. Оно было проверено для таких N, что 0<N<1000000. Для заданного числа N количество чисел, которое выдает алгоритм, назовем len(N). Для вышеприведенного примера len(22)=16

Задача

Необходимо для заданных чисел K, которые расположены между числами i и j, включая концы промежутка, определить максимальное значение len(K). Обозначим это значение как max


Формат входных данных 
Программа считывает входные данные из текстового ASCII-файла 3xN_1.DAT. Каждый ряд входного файла содержит одну пару целых чисел i и j, разделенных пробелом. Каждое из чисел меньше 10000 и больше 0.

Формат выходных данных
Результатом работы программы выводится в файл 3xN_1.SOL. Для каждой входной пары (i и j) необходимо вывести ряд из трех чисел: i, j, max, которые отделяются пробелом.


Пример:

3xN_1.DAT
1  10
100  200
201  210
900  1000


3xN_1.SOL
1  10  20
100  200  125
201  210  89
900  1000  174