HDU ACM——整數解
阿新 • • 發佈:2018-12-13
整數解
Problem Description
有二個整數,它們加起來等於某個整數,乘起來又等於另一個整數,它們到底是真還是假,也就是這種整數到底存不存在,實在有點吃不準,你能快速回答嗎?看來只能通過程式設計。 例如: x + y = 9,x * y = 15 ? 找不到這樣的整數x和y 1+4=5,14=4,所以,加起來等於5,乘起來等於4的二個整數為1和4 7+(-8)=-1,7(-8)=-56,所以,加起來等於-1,乘起來等於-56的二個整數為7和-8
Input
輸入資料為成對出現的整數n,m(-10000<n,m<10000),它們分別表示整數的和與積,如果兩者都為0,則輸入結束。
Output
只需要對於每個n和m,輸出“Yes”或者“No”,明確有還是沒有這種整數就行了。
Sample Input
9 15 5 4 1 -56 0 0
Sample Output
No Yes Yes
#include<stdio.h> int find(int n,int m){ int i,a,b; if(m<0)b=-m; else b=m; for(i=1;i<b/2;i++){ a=m/i; if(a*i==m && a+i==n)return 1; } for(i=-1;i>(-b/2);i--){ a=m/i; if(a*i==m && a+i==n)return 1; } return 0; } int main() { int n,m; while(scanf("%d %d",&n,&m)!=EOF){ if(n==0 && m==0)break; if(find(n,m))printf("Yes\n"); else printf("No\n"); } return 0; }