#include<cstdio>#include<iostream>#include<algorithm>#include<cstdlib>#include<cstring>#include<cmath>#include<ctime>#include<cctype>usingnamespace std;constint MAXN =5e4+5;int T, n, m;int mu[MAXN], smu[MAXN];longlong f[MAXN];bool NotPrime[MAXN];int PrimeList[MAXN];int Diven[MAXN];voidInit(){constint n =5e4;for(registerint i =1; i <= n;++i){for(registerint t, L =1, R; L <= i; L = R +1){
R = i /(t = i / L);
f[i]+=(R - L +1)* t;}}
NotPrime[0]= NotPrime[1]=1;
mu[1]=1;for(registerint i =2; i <= n;++i){if(!NotPrime[i]) PrimeList[++PrimeList[0]]= i, Diven[PrimeList[0]]= n / i, mu[i]=-1;for(registerint t, j =1; j <= PrimeList[0]&& i <= Diven[j];++j){
NotPrime[t = i * PrimeList[j]]=1;if(i % PrimeList[j]==0){
mu[t]=0;break;}
mu[t]=-mu[i];}}for(registerint i =1; i <= n;++i){
smu[i]= smu[i-1]+ mu[i];}}#define getchar() (frS==frT&&(frT=(frS=frBB)+fread(frBB,1,1<<12,stdin),frS==frT)?EOF:*frS++)char frBB[1<<12],*frS=frBB,*frT=frBB;inlineintread(int& x){
x=0;char ch=getchar();bool w=0;while(!isdigit(ch))w|=(ch=='-'),ch=getchar();while(isdigit(ch))x=x*10+(ch^48),ch=getchar();
w?(x=-x):0;}intmain(){Init();read(T);registerint fafa;registerlonglong Ans;while(T--){read(n);read(m);
fafa =(n - m)>>31;
fafa = n & fafa | m &~fafa;
Ans =0;for(registerint tn, tm, L =1, R; L <= fafa; L = R +1){
R =min(n/(tn=n/L),m/(tm=m/L));
Ans += f[tn]* f[tm]*(smu[R]- smu[L-1]);}printf("%lld\n", Ans);}return0;}