#include <bits/stdc++.h>
using namespace std;
int T,M;
int a,b,c;
int gcd(int x,int y)
{
while(y)
{
int t=y;
y=x%y;
a=t;
}
return a;
}
int sq(int x)
{
for(int i=int(sqrt(x));i>=0;i--)
if(x%(i*i)==0)
return i;
}
void printy(int z,int m)
{
int gcdzm=gcd(z,m);
int z1=z/gcdzm,m1=m/gcdzm;
if(m1<0)
m1*=-1,z1*=-1;
double s=1.0*z1/m1;
if(s!=floor(1.0*z1/m1))
cout<<z1<<"/"<<m1;
else
cout<<int(s);
}
bool ifzheng(int z,int m)
{
double s=1.0*z/m;
if(s==floor(1.0*z/m))
return true;
return false;
}
int main()
{
cin>>T>>M;
while(T--)
{
cin>>a>>b>>c;
int del=b*b-4*a*c;
if(del<0)
{
cout<<"NO"<<endl;
continue;
}
int t=sqrt(del);
if(t*t!=del)
{
int q1z,q1m,q2z,q2m,r;
q1z=-b,q1m=q2m=2*a;
q2z=sq(del);
r=del/(q2z*q2z);
if(q1z!=0)
printy(q1z,q1m),cout<<"+";
if(1.0*q2z/q2m==1.0)
cout<<"sqrt("<<r<<")"<<endl;
else if(ifzheng(q2z,q2m)==true)
printy(q2z,q2m),cout<<"*sqrt("<<r<<")"<<endl;
else if(ifzheng(q2m,q2z)==true)
cout<<"sqrt("<<r<<")/",printy(q2m,q2z),cout<<endl;
else
{
int gcdzm=gcd(q2z,q2m);
int z1=q2z/gcdzm,m1=q2m/gcdzm;
cout<<z1<<"*sqrt("<<r<<")/"<<m1<<endl;
}
}
else
{
int xz=-b+t,xm=2*a;
printy(xz,xm),cout<<endl;
}
}
return 0;
}
只对了第一个点