✏️ 纠错
第 127 题 / 共 155 题

题目描述

对于正整数 n,如果 n 可以表为两个 2 的次幂之和,即 n=2x+2y(x,y 均为非负整数),那么称 n 为幂和数。

给定正整数 l,r,请你求出满足 l≤n≤r 的整数 n 中有多少个幂和数。

输入格式

一行,两个正整数 l,r,含义如上。

输出格式

输出一行,一个整数,表示 l,r 之间幂和数的数量。

输入输出样例

输入 #1

2 8

输出 #1

6

输入 #2

10 100

输出 #2

20

说明/提示

对于所有测试点,保证 1≤l≤r≤104。

📝 题目解析
【代码解析】
题目要求找出l 到r 之间可以表示为2x+2y 形式的数。代码使用两层while 循环生成所有2x 和2y 的组合(a 和b 分别代表2x 和2y)。通过a*=2 和b*=2 来生成下一个2的幂。检查a+b 是否在[l, r] 范围内,如果在则计数
【参考程序】