异或之约

题目背景

Y同学对数论中的约数和位运算中的异或(XOR)操作都怀有浓厚的兴趣。他好奇地想,当这两个看似无关的概念被结合在一起时,会产生怎样有趣的数学问题。

于是,他定义了一种特殊的数对关系:如果两个数的异或值,恰好是它们其中之一的约数,那么这两个数就是“异或相关的”。现在,他需要你来帮助他统计,在一个给定的范围内,与一个特定数“异或相关”的数有多少个。

题目描述

给定两个整数 xxmm

你需要计算,在整数 yy 满足 1ym1 \le y \le m 的范围内,有多少个 yy 能够同时满足以下两个条件:

  1. xyx \neq y
  2. xyx \oplus yxx 的约数 xyx \oplus yyy 的约数。(其中 \oplus 表示按位异或)

你需要处理 TT 组独立的测试用例。

输入格式

输入的第一行包含一个整数 TT,表示测试用例的数量。

对于每组测试用例,输入一行,包含两个用空格分隔的整数 xxmm

输出格式

对于每个测试用例,输出一行,一个整数,表示满足条件的 yy 的数量。

样例

样例输入 1

5
6 9
5 7
2 3
6 4
4 1

样例输出 1

3
2
1
1
0

提示

数据范围与约定

  • 对于 100%100\% 的数据,1T1041 \le T \le 10^41x1061 \le x \le 10^61m10181 \le m \le 10^{18}
  • 保证所有测试用例中 xx 的总和不超过 10710^7