2016 大连 D HDU5974 A Simple Math Problem · 数论

转化成用gcd做以后,然后简化公式,结论题_(:з」∠)_
(不过我算不出来就是了2333
#include 
#include 
#include 
#include 
using namespace std;
#define ll long long

ll a,b,i,j,c,d;

ll gcd(ll a,ll b){
	return b?gcd(b,a%b):a;
} 

int main(){
	while (~scanf("%I64d%I64d",&a,&b)){
		c=gcd(a,b);
		d=a*a-4*b*c;
		if (d<0){
			puts("No Solution");
			continue;
		}
		i=(a-sqrt(d))/2/c;
		j=(a+sqrt(d))/2/c;
		if (i*j*c==b) printf("%I64d %I64d\n",i*c,j*c);
			else puts("No Solution");
	}
	return 0;
}

你可能感兴趣的:(HDU,数学)