AND
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

xiao hua 非常喜欢质数,ta想要知道在xy之间有多少质数,并且这些质数形成的数组有多少个子区间AND和为0。子区间 [l,r](1≤l≤r≤n)AND 和为 0,即a[l]至 a[r]中所有数进行AND操作得到的结果为0。
与(AND)运算,运算规则:全一为一,有零为零。即只有两个操作数对应的二进制位都为1时,结果才为1,其他情况均为0(也可以说,只要有0,结果就为0)。

输入描述:

第一行给出一个数t
之后 t 行,每行会给出两个正整数 xy
1 ≤ t ≤ 150
2 ≤ x ≤ y≤ 100 000 000

输出描述:

每行输出两个整数ab
axy区间内的所有质数的数目
bxy区间内的所有质数形成的数组中有多少子区间and和为0
示例1

输入

复制
3
2 3
2 4
2 5

输出

复制
2 0
2 0
3 1

说明

第一个的质数有2,3
第二个的质数有2,3
第三个的质数有2,3,5,并且2,3,5的and和为0

备注: