AT_toyota2023spring_final_c Count Dividing XOR
题目描述
给定整数 $L,R$。请计算满足以下条件的整数对 $(A,B)$ 的个数。
- $L \leq A < B \leq R$。
- $A$ 能被 $A \oplus B$ 整除。
- $B$ 能被 $A \oplus B$ 整除。
这里,$\oplus$ 表示按位异或(XOR)运算。
按位异或(XOR)运算的定义如下:对于非负整数 $A,B$,$A \oplus B$ 是将 $A$ 和 $B$ 的二进制表示中每一位进行异或操作得到的结果。对于每个 $2^k$ 位($k \geq 0$),如果 $A$ 和 $B$ 的该位中只有一个为 $1$,则结果的该位为 $1$,否则为 $0$。
例如,$3 \oplus 5 = 6$(二进制表示为:$011 \oplus 101 = 110$)。
一般来说,$k$ 个非负整数 $p_1, p_2, p_3, \dots, p_k$ 的按位异或为 $(\dots((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k)$,并且可以证明其结果与顺序无关。
输入格式
输入从标准输入中给出,格式如下:
> $L$ $R$
输出格式
输出答案。
说明/提示
## 限制条件
- $1 \leq L < R \leq 10^{18}$
- $R-L \leq 10^6$
- 输入的值均为整数
## 样例解释 1
$(A,B)=(4,5)$ 和 $(A,B)=(4,6)$ 满足条件。
由 ChatGPT 4.1 翻译