A Simple Math Problem HDU - 5974

xiaoxiao2021-02-28  70

A Simple Math Problem HDU - 5974

转自http://www.cnblogs.com/kimsimple/p/6792395.html

题意

Given two positive integers a and b,find suitable X and Y to meet the conditions: X+Y=a Least Common Multiple (X, Y) =b

分析

x*y = b*gcd(x,y); 设 gcd(x,y) = d; x =i * d; y = j * d; a = (i + j)*d; b = i*j*d; gcd(a,b) = d; x*y = b*gcd(a,b); x + y = a; 解一元二次方程可得解

参考代码

int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } int main(void) { int a,b; while(~scanf("%d %d",&a,&b)) { int tmp = a*a-4*b*gcd(a,b); if(tmp < 0) { printf("No Solution\n"); continue; } double t = sqrt(tmp); t = (a-t)/2; if(t-(int)t>1e-6) { printf("No Solution\n"); continue; } tmp = t; printf("%d %d\n",tmp,a-tmp); } }
转载请注明原文地址: https://www.6miu.com/read-73580.html

最新回复(0)