#include #include #include #include #include using namespace std; #define ll long long #define FOR(i,a,b) for(int i=a;i<=b;i++) #define FORD(i,a,b) for(int i=a;i>=b;i--) #define FORL(i,x) for(int i=head[x];i;i=nxt[i]) #define clr(x,y) memset(x,y,sizeof(x)) #define in(a) a=read() #define out(a) printf("%d\n",a) inline ll read(){ char c=getchar();ll f=1,x=0; while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9')x=x*10+(c-'0'),c=getchar(); return x*f; } #define mod 998244353 void MOD(int &x){if(x>=mod)x-=mod;} #define maxn 1000010 #define inf (1<<30) int u[maxn],vis[maxn],mn[maxn],cnt[maxn]; int a1[maxn],b1[maxn],a2[maxn],b2[maxn]; ll aa[maxn],bb[maxn],ab[maxn],ba[maxn]; int main(){ FOR(i,1,1000000)vis[i]=1; FOR(i,2,1000000) if(!u[i]){ for(int j=i;j<=1000000;j+=i){ u[j]=1; if(j%(i*i)==0)vis[j]=0; if(!mn[j])mn[j]=i; } } FOR(i,1,1000000) if(vis[i]){ int c=i; while(c!=1){ c/=mn[c]; cnt[i]++; } } int t; in(t); while(t--){ int n,m; in(n);in(m); if(n