1 条题解

  • 1
    @ 2022-8-19 17:43:25
    #include<cstdio>
    using namespace std;
    int gcd(int a,int b) {
        return b==0?a:gcd(b,a%b);
    }
    int main() {
        int T;
        scanf("%d",&T);
        while(T--) {
            int a0,a1,b0,b1;
            scanf("%d%d%d%d",&a0,&a1,&b0,&b1);
            int p=a0/a1,q=b1/b0,ans=0;
            for(int x=1;x*x<=b1;x++) 
                if(b1%x==0){
                    if(x%a1==0&&gcd(x/a1,p)==1&&gcd(q,b1/x)==1) ans++;
                    int y=b1/x;//得到另一个因子
                    if(x==y) continue; 
                    if(y%a1==0&&gcd(y/a1,p)==1&&gcd(q,b1/y)==1) ans++;
                }
            printf("%d\n",ans);
        }
        return 0;
    }
    
    • 1

    信息

    ID
    25
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    22
    已通过
    15
    上传者