显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,a[2],b[2],tot=0;
inline int gcd(int a,int b){return b==0?a:gcd(b,a%b);}
int main()
{
freopen("son.in","r",stdin);
freopen("son.out","w",stdout);
scanf("%d",&n);
while(n--)
{
tot=0;
scanf("%d%d",&a[0],&a[1]);
scanf("%d%d",&b[0],&b[1]);
int tmp=(int)(sqrt((double)b[1]));
for(int i=1;i<=tmp;++i){
if(b[1]%i)continue;
if(gcd(a[0],i)==a[1]&&gcd(b[0],i)*b[1]==b[0]*i)tot++;
int j=b[1]/i;
if(j%a[1])continue;
if(j<=i||j==0)continue;
if(gcd(a[0],j)==a[1]&&gcd(b[0],j)*b[1]==b[0]*j)tot++;
}
printf("%d\n",tot);
}
return 0;
}