2876. 二进制位不同的个数

Naive循环位运算

时间限制:2000 ms

内存限制:256 MiB

题面

对于两个非负整数 xx 和 yy,函数 f(x,y)f(x,y) 定义为 xx 和 yy 在二进制表示时,其对应位不同的个数。例如,f(2,3)=1,f(0,3)=2,f(5,10)=4。f(2,3)=1, f(0,3)=2, f(5,10)=4。

现在给出一组非负整数 xx 和 yy,计算 f(x,y)f(x,y) 的值。

输入格式

第一行:一个整数 T(0<T⩽100)​T(0 \lt T \leqslant 100 )​,表示有 T​T​ 组测试数据。

第 2 行 ~ T+1T+1 行:每行输入两个正整数 xx 和 yy,(0⩽x,y⩽1000000)(0 \leqslant x, y \leqslant 1000000 )。两个整数之间有一个空格。

输出格式

对每组测试数据,输出一行。

样例

输入

4
2 3
0 3
5 10
100 200

输出

1
2
4
4