#include <iostream>
#include <random>
using namespace std;
using ll = long long;
ll gcds(ll a,ll b)
{
   if (a%b == 0)
   {
       return(b);
   }
   else
   {
       return(gcds(b, a%b));
   }
}
ll si(ll a,ll b){
  ll r=gcds(a,b);
  return a/r;
}
ll bo(ll a,ll b){
  ll r=gcds(a,b);
  return b/r;
}
int main(){
  ll s;
  cin>>s;
 ll a,b;
  ll ans;
  for(ll i=0;i<s;i++){
  cin>>a>>b;
    if(2*a>b){
      a=b-a;
    }
ans=100000000/b;
    ll r;
    for(ll i=3;i*i<=b;i=i+2){
      if(b%i==0){
      if((b*(i*i-1))%(2*a*i)==0&&(b*(i*i-1))/(2*a*i)>i){
        ans++;
      }
      r=b/i;
      if(r!=i){
      if((b*(r*r-1))%(2*a)==0&&(b*(r*r-1))/(2*a)>r){
        ans++;
      }
      }
    }
    }
    cout<<ans<<endl;
  }
}