\color{lightblue}{\text{源代码}}
```cpp #include"stdio.h" #include"algorithm" #include"math.h" using namespace std; int factor[20000000/*防止MLE*/];//存储因数 void getfac(int a){ const int sq=sqrt(a); int k=0; for(int i=1;i<=sqrt(a);i++) if(a%i==0){ factor[++k]=i; if(i!=a/i) factor[++k]=a/i; } factor[0]=k;//factor[0]存储因数个数 } int gcd(int a,int b){ if(!b) return a; return gcd(b,a%b); } int lcm(int a,int b){ return a*b/gcd(a,b); } int main(void){ int n,a0,a1,b0,b1; scanf("%d",&n); for(int i=0;i<n;i++){ int ans=0; scanf("%d%d%d%d",&a0,&a1,&b0,&b1); getfac(b1); for(int j=1;j<=factor[0];j++)//遍历b1的因数 if(gcd(min(factor[j],a0),max(factor[j],a0))==a1&&lcm(min(factor[j],b0),max(factor[j],b0))==b1) ans++; printf("%d\n",ans); } return 0; } ```