记录
#include<bits/stdc++.h>
using namespace std;
int a,b,c,t,m;
int gcd(int a,int b)
{
if(b==0)
{
return a;
}
if(a<b)
{
return gcd(a,b%a);
}
return gcd(b,a%b);
}
void out1(int p,int q)
{
if(q<0)
{
q*=-1;
p*=-1;
}
if(p==0)
{
cout<<0;
return;
}
int tmp=gcd(abs(p),q);
p/=tmp;
q/=tmp;
if(p%q==0)
{
cout<<p/q;
return;
}
else
{
cout<<p<<"/"<<q;
return;
}
}
int main()
{
cin>>t>>m;
while(t--)
{
cin>>a>>b>>c;
if(b*b-4*a*c<0)
{
cout<<"NO"<<endl;
}
else if(b*b-4*a*c==0)
{
out1(-b,2*a);
cout<<endl;
}
else
{
int p1,q1,p2,q2,r;
q1=q2=2*a;
p1=-b;
p2=1;
r=b*b-4*a*c;
int tmp=2;
while(tmp*tmp<=r)
{
while(r%(tmp*tmp)==0)
{
r/=tmp*tmp;
p2*=tmp;
}
tmp++;
}
if(q2<0)
{
q2*=-1;
p2*=-1;
}
tmp=gcd(abs(p2),q2);
p2/=tmp;
q2/=tmp;
if(r==1)
{
int tmp1=gcd(q1,q2)*q1*q2;
int tmp2=p1*(tmp1/q1)+p2*(tmp1/q2);
p1=tmp2;
q1=tmp1;
p2=0;
q2=1;
r=0;
out1(p1,q1);
}
else
{
if(p1!=0)
{
if(q1<0)
{
q1*=-1;
p1*=-1;
}
tmp=gcd(abs(p1),q1);
p1/=tmp;
q1/=tmp;
out1(p1,q1);
cout<<"+";
}
if(p2==1 && q2==1)
{
cout<<"sqrt("<<r<<")";
}
else if(q2==1 && p2!=0)
{
cout<<p2<<"*sqrt("<<r<<")";
}
else if(p2==1 && q2!=0)
{
cout<<"sqrt("<<r<<")/"<<q2;
}
else
{
cout<<p2<<"*sqrt("<<r<<")/"<<q2;
}
}
cout<<endl;
}
}
return 0;
}