UOJ Logo AYIT Online Judge

AYITOJ

Statistics
时间限制:1s    内存限制:256MB    满分: 10分

题目描述

小峰最近对能整除2的数字特别感兴趣。对于一个能恰好整除 k(k为正整数)个2的整数x,意味着x能整除 k 个2但不能整除 k+1 个2。

例如4恰好能整除2个2,8恰好能整除3个2,24恰好能整除3个2。

小峰想快速地多次查询对于 1~n 的所有整数,有多少个整数能恰好整除 k 个2。

但小峰不会,所以想求助编程水平好的你来帮忙解决。


输入描述

第一行输入一个正整数 t,表示有t个测试样例。

随后 t 行,每行输入两个正整数 n,k,两个整数之间以空格间隔,含义如上。


输出描述

输出 t 行,对于每一行输出一个整数,即对于 1~n 的所有整数,有多少个整数能恰好整除 k 个2。


样例输入

6
6 2
30 3
1 2
64 4
128 3
256 4


样例输出

1
2
0
2
8
8


样例解释:

第一次询问,1~6中能恰好整除2个2的有4,共1个

第二次询问,1~30中能恰好整除3个2的有8,24,共2个

第三次询问,1~1中没有能恰好整除2个2的数

第四次询问,1~64中能恰好整除4个2的有16,48,共2个

第五次询问,1~128中能恰好整除3个2的有8,24,40,56,72,88,104,120,共8个

第六次询问,1~256中能恰好整除4个2的有16,48,80,112,144,176,208,240,共8个

数据范围:

1 <= t <= 2e5

对于30%的数据: 1 <= n <= 100, 1 <= k <= 29;

对于50%的数据: 1 <= n <= 2e5, 1 <= k <= 29;

对于100%的数据: 1 <= n <= 1e9, 1 <= k <= 29;

题目来源

wuningzhixia1234