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