#include<bits/stdc++.h>
using namespace std;
int n;
int gcd(int a,int b){
return __gcd(a,b); // 内置函数。
}
int lcm(int a,int b){
return a/gcd(a,b)*b; // 防止超过 int 范围。
}
int main(){
ios::sync_with_stdio(false);
cin>>n;
while (n--){
int a0,a1,b0,b1,ans=0;
cin>>a0>>a1>>b0>>b1;
for (int i=1;i<=b1;i++){
if (gcd(i,a0)==a1&&lcm(i,b0)==b1) ans++;
}
cout<<ans<<"\n";
}
return 0;
}
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n;
int gcd(int a,int b){
return __gcd(a,b); // 内置函数。
}
int lcm(int a,int b){
return a/gcd(a,b)*b; // 防止超过 int 范围。
}
int main(){
ios::sync_with_stdio(false);
cin>>n;
while (n--){
int a0,a1,b0,b1,ans=0;
cin>>a0>>a1>>b0>>b1;
for (int i=1;i<=b1/i;i++){
if (b1%i!=0) continue; // 枚举约数。
if (gcd(i,a0)==a1&&lcm(i,b0)==b1) ans++;
if (b1!=i*i){ // 注意排除特殊情况。
if (gcd(b1/i,a0)==a1&&lcm(b1/i,b0)==b1) ans++;
}
}
cout<<ans<<"\n";
}
return 0;
}