Jam's math problem
Problem Description
Jam has a math problem. He just learned factorization.
He is trying to factorize ax^2+bx+c into the form of pqx^2+(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 ax^2+bx+c into the form of pqx^2+(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)
Output
You should output the "YES" or "NO".
Sample Input
1 6 5
1 6 4
Sample Output
YES
NO
Hint
The first case turn x^2+6*x+5 into (x+1)(x+5)
Recommend
hujie
题目大意:输入abc,问ax*x+bx+c=0能否因式分解
思路:只要判断qk+mp与b是否相等(a==pq,c==km)
注意:循环q可以用p==a/q,用i*i<=a可以防止重复的情况。。。
#include <stdio.h>
int main()
{
int a, b, c, i, j, T, flag;
scanf("%d", &T);
while(T--)
{
flag=;
scanf("%d%d%d", &a, &b, &c);
for(i=;flag&&i*i<=a;i++)
{
if(a%i==)
for(j=;flag&&j*j<=c;j++)
if(c%j==)
if(i*j+(a/i)*(c/j)==b||i*(c/j)+j*(a/i)==b)
flag=;
}
if(!flag) printf("YES\n");
else printf("NO\n");
}
return ;
}