Олимпиадный тренинг

Задача . B. Новый год и старые свойства


2015 год почти подошёл к концу.

Лимак — белый медвежонок, который недавно узнал о двоичной системе счисления. Он сразу заметил, что запись номера прошедшего года в двоичной системе счисления содержит ровно один ноль — 201510 = 111110111112. Обратите внимание, количество нулей в записи числа в десятичной системе счисления значения не имеет.

Лимак выбрал некоторый интервал лет и теперь собирается посчитать количество лет из этого интервала, таких что их запись в двоичной системе счисления так же содержит ровно один ноль. А сможете ли вы сделать это быстрее?

Считайте, что положительные целые числа всегда записываются без ведущих нулей.

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

В единственной строке входных данных записаны два целых числа a и b (1 ≤ a ≤ b ≤ 1018) — первый и последний год в интервале Лимака, соответственно.

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

Выведите одно целое число — количество лет в данном интервале, запись которых в двоичной системе счисления содержит ровно один ноль.

Примечание

В первом примере интервал Лимака содержит числа 510 = 1012, 610 = 1102, 710 = 1112, 810 = 10002, 910 = 10012 и 1010 = 10102. Два из них (1012 и 1102) обладают описанным выше свойством.


Примеры
Входные данныеВыходные данные
1 5 10
2
2 2015 2015
1
3 100 105
0
4 72057594000000000 72057595000000000
26

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя