#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pi;
const ll M=1e5;
const ll N=2e3;
bool st[M+5];
ll prime[M+5],vnt=0,fcnt=0,sum=0;
pi factor[N];
ll cnt[N];
void init()
{
for(ll i=2;i<=M;i++)
{
if(!st[i]) prime[vnt++]=i;
for(ll j=0;prime[j]*i<=M;j++)
{
st[prime[j]*i]=true;
if(i%prime[j]==0) break;
}
}
}
void resolve(ll x)
{
for(ll i=0;i<vnt;i++)
{
if(x%prime[i]==0)
{
ll s=0;
while(x%prime[i]==0) { x/=prime[i]; s++; }
factor[fcnt++]={prime[i],s};
}
}
if(x!=1) factor[fcnt++]={x,1};
}
void dfs(ll u,ll p)
{
if(u>=fcnt) { cnt[sum++]=p; return; }
for(ll i=0;i<=factor[u].second;i++)
{
dfs(u+1,p);
p*=factor[u].first;
}
}
int main()
{
init();
int T;
cin>>T;
while(T--)
{
ll ans=0;
sum=0;fcnt=0;
ll a,b,c,d;
cin>>a>>b>>c>>d;
resolve(d);
dfs(0,1);
for(ll i=0;i<sum;i++)
{
ll x=cnt[i];
if(gcd(x,a)==b&&(x*c)/gcd(x,c)==d)
{
ans++;
}
}
cout<<ans<<endl;
}
return 0;
}