#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N(35),N2(45009);
struct factor{
	int n;int num;
};
bool prime[N2]={false};
int pri[N2]={0};
factor B1[N];
void init()
{
    fill(prime,prime+N2,true);
    
    for(int i=2;i<=45000;i++)
        if(prime[i])
            for(int j=2;i*j<=45000;j++)
                prime[i*j]=false;
    for(int i=2;i<=45000;i++)
        if(prime[i])
        {
            pri[0]++;
            pri[pri[0]]=i;
        }
}
int trans(int x,factor *t)
{
    t[0].n=0;
    for(int i=1;i<=pri[0];i++)
        if(x%pri[i]==0)
        {
            t[0].n++;
            t[t[0].n].n=pri[i];
            t[t[0].n].num=1;
            x/=pri[i];
            while(x%pri[i]==0)
            {
                t[t[0].n].num++;
                x/=pri[i];
            }
        }
    if(x>1)
    {
        t[0].n++;
        t[t[0].n].n=x;
        t[t[0].n].num=1;
    }
}
int ind(int x,int fac)
{
    int num(0);
    while(x%fac==0)
    {
        x/=fac;
        num++;
    }
    return num;
}
int main()
{
	int n,a0,a1,b0,b1;
	init();
	cin>>n;
	for(int z=0;z<n;z++)
	{
        int ans(1);
		cin>>a0>>a1>>b0>>b1;
		trans(b1,B1);
       // for (int j=1;j<=B1[0].n;j++)
       //         cout<<B1[j].n<<" "<<B1[j].num<<endl;
        for(int i=1;i<=B1[0].n;i++)
        {
            int fac(B1[i].n);
            int pa0(ind(a0,fac)),pa1(ind(a1,fac)),
            pb0(ind(b0,fac)),pb1(B1[i].num);            
            //cout<<pa0<<" "<<pa1<<" "<<pb0<<" "<<pb1<<endl;
            if(pa0==pa1)
            {
                if(pb0==pb1) ans*=pb1-pa1+1;
                if(pb0<pb1&&pa0>pb1) {ans=0;break;}
            }
            else
            {
                if(pb0<pb1&&pa1!=pb1) {ans=0;break;}
                if(pb0==pb1&&pa1>pb1) {ans=0;break;}
            }
        }
        cout<<ans<<endl;
	}
	return 0;
}
/**************************************************************
	Problem: 2289
	User: admin
	Language: C++
	Result: Accepted
	Time:311 ms
	Memory:2296 kb
****************************************************************/