一個YES,一個Yes。試了10幾次、、我也是無語了。。哪裡都不錯的。。。。
很簡單,用2次求根公式求出其中一個的值,然後判斷是否為整數 if (x == int(x) )。
或者 用最直接的方法,從-m到m挨個算。有意結果時停止。
源碼:
#include#include int main() { int m,n; double x,y; while (scanf(%d%d,&n,&m)!=EOF&&(m!=0||n!=0)) { x = ((double)n+(double)sqrt((double)(n*n-4*m)))/2; //y = ((double)n-(double)sqrt((double)(n*n-4*m)))/2; if (x == int(x) )//|| y == int(y)) printf(Yes ); else printf(No ); } return 0; } /* #include #include void main() { int n,m,i; while(scanf(%d%d,&n,&m)==2&&(n!=0||m!=0)) { for(i=-abs(m);i<=abs(m);i++) { if(i*(n-i)==m) break; } if(i==(abs(m)+1)) printf(No ); else printf(Yes ); } }*/