题目描述
如果一个正整数的二进制表示中,每个比特($0$ 或 $1$)的左边或右边都有一个相同的比特,Dr. X 就认为它是一个“幸运数字”。例如:
$(1)_2=(1)_{10}$ 有落单的 $1$,它不是幸运数字。
$(110111)_2=(55)_{10}$ 有落单的 $0$,它不是幸运数字。
$(111110011)_2=(499)_{10}$ 是幸运数字。
$(110011001100)_2=(3276)_{10}$ 是幸运数字。
对于给定的 $a$ 和 $b$,Dr. X 希望你求出 $a, a + 1, a + 2, \dots, b$ 中幸运数字的数量。
输入格式
输入空格分隔的整数 $a$ 和 $b$。
输出格式
输出一行一个整数,代表 $a$ 和 $b$ 之间幸运数字的数量。
样例 #1
样例输入 #1
1 100
样例输出 #1
14
样例 #2
样例输入 #2
4096 65535
样例输出 #2
1364
提示
对于 $100\%$ 的数据,满足 $1 \leq a \leq b \leq 10^6$。
本题原始满分为 $15\text{pts}$。