显示代码纯文本
#include<stdio.h>
#include<math.h>
int gys(int a,int b)
{
int r,i;
if(a>b)
r=a%b;
else {i=a;a=b;b=i;r=a%b;}
while(r!=0)
{a=b;
b=r;
r=a%b;
}
return b;
}
int lcm(int a,int b)
{
return a/gys(a,b)*b;
}
int cc()
{
freopen("son.in","r",stdin);
freopen("son.out","w",stdout);
int a0,a1,b0,b1,n,num=0,i,j,p,q;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d%d%d",&a0,&a1,&b0,&b1);
q=sqrt(b1);
for(j=1;j<=q;j++)
{
if(j%a1==0&&b1%j==0&&gys(j,a0)==a1&&lcm(j,b0)==b1)num++;
if(b1%j==0){
p=b1/j;
{if(p!=j&&gys(p,a0)==a1&&lcm(p,b0)==b1)num++;}}
}
printf("%d\n",num);
num=0;
}
return 0;
}
int cx=cc();
int main(){;
}