#P3252. Round Numbers
Round Numbers
题目描述
众所周知,奶牛没有手指和拇指,因此无法玩“剪刀、石头、布”(也称为“石头、剪刀、布”、“Ro, Sham, Bo”以及其他许多名称)来做出诸如谁先被挤奶之类的任意决定。它们甚至无法抛硬币,因为用蹄子抛硬币非常困难。
因此,它们转而采用“圆形数字”匹配的方式。第一头奶牛选择一个小于 亿的整数,第二头奶牛也这样做。如果两个数字都是“圆形数字”,则第一头奶牛获胜;否则,第二头奶牛获胜。
如果一个正整数 的二进制表示中零的位数多于或等于一的位数,则称 为“圆形数字”。例如,整数 的二进制形式是 。 有两个零和两个一;因此, 是一个圆形数字。整数 的二进制是 ;由于它有两个零和三个一,因此它不是圆形数字。
显然,奶牛将数字转换为二进制需要一段时间,所以获胜者也需要一段时间才能确定。Bessie 想要作弊,她认为如果她知道在给定范围内有多少“圆形数字”,她就能做到。
请你编写一个程序,计算输入指定的闭区间内($1 \leq \text{Start} < \text{Finish} \leq 2,000,000,000$)有多少个圆形数字,从而帮助她。
输入格式
第 行:两个由空格分隔的整数,分别是 和 。
输出格式
第 行:一个整数,表示在闭区间 内圆形数字的个数。
样例输入
2 12
样例输出
6