1 solutions
-
0
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