#include<bits/stdc++.h>
using namespace std;
long long a,b,c,s,T,m;
struct node
{
long long fz,fm;
};
node solve(long long fz,long long fm)
{
if(fz*fm>0){fz=abs(fz);fm=abs(fm);}
else if(fz*fm!=0){fz=-abs(fz);fm=abs(fm);}//not fz=-fz
if(fz==0)return {0,1};
long long g=__gcd(abs(fz),fm);
return {fz/g,fm/g};
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>T>>m;
while(T--)
{
cin>>a>>b>>c;
//下面这几行
if ( a < 0 ){
a = -a ;
b = -b ;
c = -c ;
}
//上面这几行
s=b*b-4*a*c;
long long chu=2*a;
if(s<0)
{
cout<<"NO"<<"\n";
continue;
}
node t=solve(-b,chu);
if(sqrt(s)!=(long long)sqrt(s))
{
long long q2=(long long)sqrt(s);
while(q2>1)
{
if(s%(q2*q2)==0)
{
break;
}
q2--;
}
long long r=s/(q2*q2);
node tt=solve(q2,chu);
if(tt.fm==1)
{
if(t.fm==1&&t.fz!=0)
{
cout<<t.fz<<"+";
}
else if(t.fz!=0)//分子为零不输出
{
cout<<t.fz<<"/"<<t.fm<<"+";
}
if(tt.fz!=1)cout<<tt.fz<<"*"<<"sqrt("<<r<<")\n";
else cout<<"sqrt("<<r<<")\n";
continue;
}
else
{
if(t.fm==1&&t.fz!=0)
{
cout<<t.fz<<"+";
}
else if(t.fz!=0)
{
cout<<t.fz<<"/"<<t.fm<<"+";
}
if(tt.fz!=1)cout<<tt.fz<<"*"<<"sqrt("<<r<<")/"<<tt.fm<<"\n";
else cout<<"sqrt("<<r<<")/"<<tt.fm<<"\n";
continue;
}
}
else
{
long long r=sqrt(s);
node tt=solve((-b)+r,chu);
// cout<<(-b)+r<<" "<<chu<<endl;
if(tt.fm==1)
{
cout<<tt.fz<<"\n";
continue;
}
else
{
cout<<tt.fz<<"/"<<tt.fm<<"\n";
continue;
}
}
}
return 0;
}
求助大佬orz