1 条题解

  • 0
    @ 2024-12-17 13:26:36
    #include<iostream>
    #include<cmath>
    using namespace std;
    typedef long long ll;
    int m,n,ans,flag;
    ll gcd(ll x,ll y)
    {
        if(y==0)    {return x;}
        return gcd(y,x%y);
    }
    int main()
    {
        cin>>n>>m;
        for(int i=1;i<=sqrt(1ll*m*n);i++)
        {
            if((1ll*n*m)%i==0&&gcd(i,(1ll*n*m)/i)==n)
            {
                ans++;
                if(1ll*i*i==1ll*n*m)  flag=1;
            }
        }
        cout<<ans*2-flag;
        return 0;
    }
    
    • 1

    最大公约数和最小公倍数问题

    信息

    ID
    650
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    19
    已通过
    12
    上传者