Jam's math problem
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 734 Accepted Submission(s): 346
Problem Description
Jam has a math problem. He just learned factorization.
He is trying to factorize ax2+bx+c into the form of pqx2+(qk+mp)x+km=(px+k)(qx+m) .
He could only solve the problem in which p,q,m,k are positive numbers.
Please help him determine whether the expression could be factorized with p,q,m,k being postive.
He is trying to factorize ax2+bx+c into the form of pqx2+(qk+mp)x+km=(px+k)(qx+m) .
He could only solve the problem in which p,q,m,k are positive numbers.
Please help him determine whether the expression could be factorized with p,q,m,k being postive.
Input
The first line is a number
T
, means there are
T(1≤T≤100)
cases
Each case has one line,the line has 3 numbers a,b,c(1≤a,b,c≤100000000)
Each case has one line,the line has 3 numbers a,b,c(1≤a,b,c≤100000000)
Output
You should output the "YES" or "NO".
Sample Input
2 1 6 5 1 6 4
Sample Output
YES NOHintThe first case turn $x^2+6*x+5$ into $(x+1)(x+5)$问题描述Jam有道数学题想向你请教一下,他刚刚学会因式分解比如说,x2+6x+5=(x+1)(x+5) 就好像形如 ax2+bx+c => pqx2+(qk+mp)x+km=(px+k)(qx+m) 但是他很蠢,他只会做p,q,m,k为正整数的题目 请你帮助他,问可不可以分解输入描述第一行T,表示T(1≤T≤100)组数据。 接下来T组数据: 每组数据一行,一个三个整数a,b,c,一组数据一行 (1≤a,b,c≤100000000)输出描述对于每组数据,输出"YES"或者"NO".输入样例2 1 6 5 1 6 4输出样例YES NOHint第一组数据可以分成(x+1)(x+5)=x2+6∗x+5
//a数组存放aa的因子,c数组存放cc的因子。//直接暴力枚举所有情况。。。#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #define INF 0x3f3f3f3f #define ll long long #define N 10010 using namespace std; struct zz { int x; int y; }a[N],c[N]; int main() { int t,aa,bb,cc; int i,j; scanf("%d",&t); while(t--) { scanf("%d%d%d",&aa,&bb,&cc); int k=0; for(i=1;i<=sqrt(aa);i++) { if(aa%i==0) { a[k].x=i; a[k++].y=aa/i; } } int kk=0; for(i=1;i<=sqrt(cc);i++) { if(cc%i==0) { c[kk].x=i; c[kk++].y=cc/i; } } int flag=0; for(i=0;i<k;i++) { for(j=0;j<kk;j++) { if((a[i].x*c[j].x+a[i].y*c[j].y==bb)||(a[i].x*c[j].y+a[i].y*c[j].x==bb)) { flag=1; break; } } } if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }