Good Bye 2015 |
---|
Закончено |
2015 год почти подошёл к концу.
Лимак — белый медвежонок, который недавно узнал о двоичной системе счисления. Он сразу заметил, что запись номера прошедшего года в двоичной системе счисления содержит ровно один ноль — 201510 = 111110111112. Обратите внимание, количество нулей в записи числа в десятичной системе счисления значения не имеет.
Лимак выбрал некоторый интервал лет и теперь собирается посчитать количество лет из этого интервала, таких что их запись в двоичной системе счисления так же содержит ровно один ноль. А сможете ли вы сделать это быстрее?
Считайте, что положительные целые числа всегда записываются без ведущих нулей.
В единственной строке входных данных записаны два целых числа a и b (1 ≤ a ≤ b ≤ 1018) — первый и последний год в интервале Лимака, соответственно.
Выведите одно целое число — количество лет в данном интервале, запись которых в двоичной системе счисления содержит ровно один ноль.
5 10
2
2015 2015
1
100 105
0
72057594000000000 72057595000000000
26
В первом примере интервал Лимака содержит числа 510 = 1012, 610 = 1102, 710 = 1112, 810 = 10002, 910 = 10012 и 1010 = 10102. Два из них (1012 и 1102) обладают описанным выше свойством.
Название |
---|