На вход автомата подаётся натуральное число N <=10000. Автомат строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописывается справа '11', если восьмеричная запись числа N заканчивается на нечетную цифру, иначе справа дописывается '10'.
3) К этой записи дописывается справа бит чётности: 0, если в полученном на предыдущем шаге двоичном коде было чётное число единиц, и 1, если нечётное.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Функция возвращает строку - шестнадцатеричное представление числа R.
Напишите программу, которая ищет на заданном отрезке [A; B] количество чисел N, из которых получаются трехзначные шестнадцатеричные значения.
Преобразование числа автоматом должно быть оформлено в виде функции automatic(N). Необходимо написать программу!
Входные данные
Два натуральных числа A < B <=10000 в одной строке через пробел.
Выходные данные
Количество чисел на отрезке, после преобразования которых получаются трехзначные шестнадцатеричное значения.
Ввод
|
Результат
|
|
30 34
|
3
|
3010=111102=368 Последняя цифра 6 – четная - преобразуем на первом шаге к 1111010, количество 1 в этой записи 5 – нечетное, следовательно, еще добавляем 1: 111101012=F516 Функция automatic вернет 'f5'
3310=1000012=418 Последняя цифра 1 – нечетная - преобразуем на первом шаге к 10000111, количество 1 в этой записи 4 – четное, следовательно, еще добавляем 0: 1000011102=10E16 Функция automatic вернет '10e'
В трехзначные шестнадцатеричные преобразуются 32, 33 и 34. |