1 solutions

  • 0
    @ 2025-12-3 17:18:54

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    long long d,s,a,b,x,y,tmp,ans;
    long long f(long long a,long long b)
    {
        if(a==0) return b;
        if(b==0) return a;
        long long c=a%b;
        while(c) a=b,b=c,c=a%b;
        return b;
    }
    int main()
    {
        cin>>d>>s;
        for(long long x=1;x*x<=s;x++)
        {
            if(s%x!=0) continue;
            y=s/x;
            if((x+y)%2!=0 || abs(x-y)%2!=0) continue;
            a=(x+y)/2;
            b=abs(x-y)/2;
            if(f(a,b)==d) tmp=a,ans=max(ans,tmp);
        }
        if(ans>0) cout<<ans;
        else cout<<-1;
        return 0;
    }
    
    • 1

    Information

    ID
    986
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By