题目:
思路:
1.两个整数的和和积容易联想到一元二次方程的两个根,只要证明有两个解,并都是整数就打印出Yes,否则打印出No
2.最后判断那步,为什么只需要判断一个整数存在就够了,因为和是整数,一个加数是整数,另一个必然也是整数。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
if(n==0&&m==0)break;
if(n*n-4*m<0)
cout<<"No"<<endl;
else
{
double a=(n+sqrt(n*n-4*m))/2,b=(n-sqrt(n*n-4*m))/2;
if(a==int(a)||b==int(b))
{
cout<<"Yes"<<endl;
}else
{
cout<<"No"<<endl;
}
}
}
}