#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);//留加速
cin.tie(0), cout.tie(0);//这个也是留加速
int T; cin >> T;
long long n, k;//0 ≦ n,k ≦ 10¹⁴
while(T--){
cin >> n >> k;
if(n == 0){//被除数等于0,虽然没有这种情况
cout << 1 << '\n';
continue;
}
if(k == 0){//商等于0
cout << 1 << '\n';
continue;
}
cout << max(n / (k + 1), n / k) - min(n / (k + 1), n / k) << '\n';
/*10/2=5......0 10/(2+1)=3......1
其中除以2和除以(2+1)算的是商为2的区间,
除数不同,余数也就不同,用大值减去小值后,就可以算出区间的余数了
因为时间限制为1.00s,暴力肯定超时,
运用小学学过的知识,还是很容易理解的。
最后不要忘了换行,'\n'会更快。*/
}
return 0;
}