代码
#include <iostream>
#include <math.h>
using namespace std;
bool process(int a, int b) {
int square = a*a-4*b;
int num = sqrt(square);
if(num*num==square){
int y1 = a+num;
int y2 = a-num;
if(y1%2==0 || y2%2==0){
return true;
}
}
return false;
}
int main() {
int a, b;
cin>>a>>b;
while(a!=0 || b!=0){
bool ans = process(a, b);
if(ans){
cout<<"Yes"<<endl;
}
else{
cout<<"No"<<endl;
}
cin>>a>>b;
}
return 0;
}
注解
1、x+y=a, x*y=b --> x=a-y --> (a-y)*y=b -->y^2-ay+b=0
然后可用求根公式解出两个根。
2、需要判断根号下a^2-4b是否为整数。以及y的根是否为整数。如果为整数才符合题意。