#include <stdio.h>
#include <math.h>
int main(){
int n,m;
while(scanf("%d%d",&n,&m),(n!=0)||(m!=0))//注意这里的逻辑或符号!如果n为0,m为3这种情况也可以,如果按都不能为0的写法就会直接结束了
{
double x=(n+sqrt(n*n-4*m))/2;
printf(((int) x==x)?"Yes\n":"No\n");
}
return 0;
}
#include<stdio.h>//思路错误版
#include<math.h>
int main()
{
int n,m,i,flag;
while(EOF!=scanf("%d%d",&n,&m)&&(m!=0&&n!=0))
{
flag=0;
if(n<0||m<0)
{
for(i=-1;i>n;i--)//没有考虑到和为正,单独的数比和大的情况
if((m/i)+i==n)
flag=1;
}
else
{
for(i=1;i<n;i++)
if((m/i)+i==n)
flag=1;
}
if(flag==1)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}