hdu 2092 整数解(数学题)

来源:互联网 发布:sql 推荐书 编辑:程序博客网 时间:2024/05/01 01:41

分析:




代码:

#include<cstdio>#include<cmath>using namespace std;int main(){    int n,m;    while(scanf("%d%d",&n,&m)&&(n||m))    {        int det=n*n-4*m;        if(det<0)        {            printf("No\n");            continue;        }        else if(det==0)        {            if(n%2)                printf("No\n");            else                printf("Yes\n");        }        else        {            double tt=sqrt(n*n*1.0/4-m);            double y=n*1.0/2+tt;            double yy=n*1.0/2-tt;            int y1=(int)y;            int y2=(int)yy;            if(y1*y1-n*y1+m==0||y2*y2+n*y2+m==0)            {                printf("Yes\n");            }            else                printf("No\n");        }    }    return 0;}



0 0