关于x的取值范围求助
查看原帖
关于x的取值范围求助
319974
雨中人大白楼主2020/5/31 20:01
#include <stdio.h>
int gcd(int a,int b)
{
   return b==0?a:gcd(b,a%b);
}
int main()
{
    int x,a0,a1,b0,b1,n,i,s,m=0;
    scanf("%d",&n);
    for(i=0,s=0;i<n;i++)
    {
        scanf("%d %d %d %d",&a0,&a1,&b0,&b1);
        a0=a0/a1;b0=b1/b0;
        for(x=a1;x*x<=b1;x+=a1)
         if(b1%x==0){  //x是b1的一个因子 
                if(x%a1==0&&gcd(x/a1,a0)==1&&gcd(b0,b1/x)==1) s++;
                int m=b1/x;      //y是另一个因子 
                if(x==m) continue; 
                if(m%a1==0&&gcd(m/a1,a0)==1&&gcd(b0,b1/m)==1) s++;
            }
        printf("%d\n",s);
        s=0;
    }
    return 0;
}

为何当解法一x的取值范围改变后答案错误。 准确来说是为何这个取值范围错误。求大佬解答

2020/5/31 20:01
加载中...