Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Проблема Коллатца

(Время: 1 сек. Память: 16 Мб Сложность: 23%)

Студент Василий начитался новостей о Григории Перельмане и решил, что тоже хочет миллион долларов. Получить его он собирается, исследовав проблему Коллатца. Эта проблема предполагает следующую последовательность преобразований: некоторое натуральное число N делится на 2, если оно четное, в противном случае умножается на три и увеличивается на единицу. Получившееся число N1 (равное либо N/2, либо 3N+1) подвергается той же процедуре, и так далее. Существует гипотеза, что любое натуральное число N в результате вышеописанных преобразований превращается в единицу. Количество шагов, требующихся для получения единицы, зависит от исходного числа по весьма сложному принципу: так, 27 превращается в 1 за 111 шагов, а 3 – за 7.

Василий предположил, что быстрее всего в единицу превращаются числа Мерсенна – числа вида 2n-1, где n – целое положительное. Теперь ему хочется проверить эту теорию. Помогите ему, напишите программу, которая по заданному числу Мерсенна N и размеру отрезка M будет выяснять, существует ли число K (N < K ≤ N+M), которое будет превращаться в единицу за меньшее число шагов, нежели N.

Входные данные

Входной файл INPUT.TXT содержит целые числа N (3 ≤ N ≤ 10100) и M (0 ≤ M ≤ 10100), разделенные пробелом.

Выходные данные

В выходной файл OUTPUT.TXT выведите число K, если его удалось найти (в том случае, когда таких чисел несколько следует выводить то из них, которое обращается в единицу быстрее, а если и таких несколько, то меньшее из них) и слово «NO» (кавычки не выводятся) в противном случае.

Пример

INPUT.TXTOUTPUT.TXT
13 54

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]

Красноярский краевой Дворец пионеров, (c)2006 - 2019, E-mail: admin@acmp.ru