#P3252. Round Numbers

Round Numbers

题目描述

众所周知,奶牛没有手指和拇指,因此无法玩“剪刀、石头、布”(也称为“石头、剪刀、布”、“Ro, Sham, Bo”以及其他许多名称)来做出诸如谁先被挤奶之类的任意决定。它们甚至无法抛硬币,因为用蹄子抛硬币非常困难。

因此,它们转而采用“圆形数字”匹配的方式。第一头奶牛选择一个小于 2020 亿的整数,第二头奶牛也这样做。如果两个数字都是“圆形数字”,则第一头奶牛获胜;否则,第二头奶牛获胜。

如果一个正整数 NN 的二进制表示中零的位数多于或等于一的位数,则称 NN 为“圆形数字”。例如,整数 99 的二进制形式是 1001100110011001 有两个零和两个一;因此,99 是一个圆形数字。整数 2626 的二进制是 1101011010;由于它有两个零和三个一,因此它不是圆形数字。

显然,奶牛将数字转换为二进制需要一段时间,所以获胜者也需要一段时间才能确定。Bessie 想要作弊,她认为如果她知道在给定范围内有多少“圆形数字”,她就能做到。

请你编写一个程序,计算输入指定的闭区间内($1 \leq \text{Start} < \text{Finish} \leq 2,000,000,000$)有多少个圆形数字,从而帮助她。

输入格式
11 行:两个由空格分隔的整数,分别是 Start\text{Start}Finish\text{Finish}

输出格式
11 行:一个整数,表示在闭区间 [Start..Finish][\text{Start}..\text{Finish}] 内圆形数字的个数。

样例输入

2 12

样例输出

6