#include using namespace std; typedef long long ll; const int Maxn=1000000; int prime[200000],mu[Maxn+5],sum[Maxn+5]; bool check[Maxn+5]; void pre() { mu[1]=1; int tot=0; for(int i=2;i<=Maxn;i++) { if (!check[i]) { mu[i]=-1; prime[++tot]=i; } for(int j=1;j<=tot&&i*prime[j]<=Maxn;j++) { check[i*prime[j]]=1; if (i%prime[j]==0) break; mu[i*prime[j]]=-mu[i]; } } for(int i=1;i<=Maxn;i++) for(int j=1;i*j<=Maxn;j++) sum[i*j]+=mu[i]*mu[j]; } int main() { pre(); int cases; scanf("%d",&cases); for(;cases;cases--) { int n,m; scanf("%d%d",&n,&m); ll ans=0; for(int i=1;i<=min(n,m);i++) if (sum[i]) { int s1=0,s2=0; for(int j=1;i*j<=n;j++) s1+=mu[i*j]; for(int j=1;i*j<=m;j++) s2+=mu[i*j]; ans+=(ll)sum[i]*s1*s2; } printf("%I64d\n",ans); } return 0; }