解题思路:x+y=n和x*y=m联立,将y=m/x带入x+y=n,获得x*x-n*x+m=0,n*n-4*m>=0时方程有解。当解为整数时,输出“Yes”,否则输出“No”。
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<cstdio>
using namespace std;
int main()
{
int n,m,a,b;
bool flag;
double x;
while(cin>>n>>m)
{
if(n==0&&m==0)break;
flag=false;
x=sqrt(n*n-4*m);
if(x>=0&&x-(int)x==0)flag=true;
if(flag)cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}