#include #include #include #include #include #include #include #include #include #include using namespace std; bool mark[1005]; vectorprime,prime1; int sum[1005]; void make_prime(){ int j,k; for(j=2;j<=1000;j++){ for(k=2;k*j<=1000;k++){ mark[j*k]=1; } } for(j=2;j<=1000;j++){ if(!mark[j]) prime.push_back(j); } } int main(){ make_prime(); int T; scanf("%d",&T); while(T--){ memset(sum,0,sizeof(sum)); prime1.clear(); int n;unsigned long long m; int ok=0,ok1=0; cin>>n>>m; if(n==m) ok=1; if(m%n) ok1=1; else m/=n; int j,k,i; for(j=0;jn) break; if(n%prime[j]==0){ prime1.push_back(prime[j]); while(n%prime[j]==0){ sum[prime1.size()-1]++; n/=prime[j]; } } } if(n>1){ prime1.push_back(n); sum[prime1.size()-1]++; } int ans=0; for(j=0;j