Jam's math problem
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 962 Accepted Submission(s): 464
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.
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
Sample Output
YES
NO
Hint
The first case turn $x^2+6*x+5$ into $(x+1)(x+5)$
AC-code:
#include<stdio.h>
#include<string.h>
#include<math.h>
using namespace std;
typedef long long ll;
int main()
{
int T,flag;
long long a,b,c,k,j,i,m;
scanf("%d",&T);
while(T--)
{
scanf("%lld%lld%lld",&a,&b,&c);
flag=0;
for(i=1;i<=sqrt(a)+1;i++)
if(a%i==0)
{
for(j=1;j<=sqrt(c)+1;j++)
{
if(c%j==0)
{
k=a/i;
m=c/j;
if(i*j+m*k==b||i*m+j*k==b)
{
flag=1;
break;
}
}
}
if(flag)
break;
}
if(flag)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}