#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
using namespace chrono;
using ull = unsigned long long;
auto start = high_resolution_clock::now();
void Code_By_Mohamed_Khaled() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
void Time() {
#ifndef ONLINE_JUDGE
cout<<"\n";
auto end = high_resolution_clock::now();
auto duration = duration_cast<microseconds>(end - start);
cout << "Time taken: " << duration.count() << " microseconds" << endl;
#endif
}
int mod=998244353;
ll add(ll a, ll b) { return ((a % mod) + (b % mod)) % mod; }
ll mul(ll a, ll b) { return ((a % mod) * (b % mod)) % mod; }
ll sub(ll a, ll b) { return ((a % mod) - (b % mod) + mod) % mod; }
int fast_power(int base,int power) {
int res=1;
while (power>0) {
if (power%2) res=mul(res,base);
base=mul(base,base);
power/=2;
}
return res;
}
int main() {
Code_By_Mohamed_Khaled();
ll t;cin>>t;
while (t--) {
ll n,k;cin>>n>>k;ll ans=0;
for (ll i=1;i*i<=k;i++) {
if (k%i==0) {
ll j=k/i;
if (__gcd(i,j)==1) {
if (i!=j)ans+=2*(n/(max(i,j)));
else ans+=n/max(i,j);
}
}
}
cout<<ans<<"\n";
}
Time();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBuYW1lc3BhY2UgY2hyb25vOwp1c2luZyB1bGwgPSB1bnNpZ25lZCBsb25nIGxvbmc7CmF1dG8gc3RhcnQgPSBoaWdoX3Jlc29sdXRpb25fY2xvY2s6Om5vdygpOwp2b2lkIENvZGVfQnlfTW9oYW1lZF9LaGFsZWQoKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBjb3V0LnRpZShudWxscHRyKTsKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCn0Kdm9pZCBUaW1lKCkgewojaWZuZGVmIE9OTElORV9KVURHRQogICAgY291dDw8IlxuIjsKICAgIGF1dG8gZW5kID0gaGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKTsKICAgIGF1dG8gZHVyYXRpb24gPSBkdXJhdGlvbl9jYXN0PG1pY3Jvc2Vjb25kcz4oZW5kIC0gc3RhcnQpOwogICAgY291dCA8PCAiVGltZSB0YWtlbjogIiA8PCBkdXJhdGlvbi5jb3VudCgpIDw8ICIgbWljcm9zZWNvbmRzIiA8PCBlbmRsOwojZW5kaWYKfQppbnQgbW9kPTk5ODI0NDM1MzsKbGwgYWRkKGxsIGEsIGxsIGIpIHsgcmV0dXJuICgoYSAlIG1vZCkgKyAoYiAlIG1vZCkpICUgbW9kOyB9CmxsIG11bChsbCBhLCBsbCBiKSB7IHJldHVybiAoKGEgJSBtb2QpICogKGIgJSBtb2QpKSAlIG1vZDsgfQpsbCBzdWIobGwgYSwgbGwgYikgeyByZXR1cm4gKChhICUgbW9kKSAtIChiICUgbW9kKSArIG1vZCkgJSBtb2Q7IH0KaW50IGZhc3RfcG93ZXIoaW50IGJhc2UsaW50IHBvd2VyKSB7CiAgICBpbnQgcmVzPTE7CiAgICB3aGlsZSAocG93ZXI+MCkgewogICAgICAgIGlmIChwb3dlciUyKSByZXM9bXVsKHJlcyxiYXNlKTsKICAgICAgICBiYXNlPW11bChiYXNlLGJhc2UpOwogICAgICAgIHBvd2VyLz0yOwogICAgfQogICAgcmV0dXJuIHJlczsKfQppbnQgbWFpbigpIHsKICAgIENvZGVfQnlfTW9oYW1lZF9LaGFsZWQoKTsKICAgIGxsIHQ7Y2luPj50OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIGxsIG4saztjaW4+Pm4+Pms7bGwgYW5zPTA7CiAgICAgICAgZm9yIChsbCBpPTE7aSppPD1rO2krKykgewogICAgICAgICAgICBpZiAoayVpPT0wKSB7CiAgICAgICAgICAgICAgICBsbCBqPWsvaTsKICAgICAgICAgICAgICAgIGlmIChfX2djZChpLGopPT0xKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGkhPWopYW5zKz0yKihuLyhtYXgoaSxqKSkpOwogICAgICAgICAgICAgICAgICAgIGVsc2UgYW5zKz1uL21heChpLGopOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvdXQ8PGFuczw8IlxuIjsKICAgIH0KICAgIFRpbWUoKTsKICAgIHJldHVybiAwOwp9