#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;
}