提交记录
#include<bits/stdc++.h>
using namespace std;
int t,m;
int a,b,c,lf;
int get(int x)
{
for(int i=m;i>=1;i--)
if(x%(i*i)==0)return i;
return 1;
}
bool pd(int delta){return int(sqrt(delta))*int(sqrt(delta))==delta;}
void fun(int tmp)
{
int g=__gcd(tmp,(2*a)),f=(2*a);
tmp/=g,f/=g;
if(f<0)f=-f,tmp=-tmp;
cout<<tmp;
if(f!=1)cout<<'/'<<f;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>t>>m;
while(t--)
{
cin>>a>>b>>c;
int delta=b*b-4*a*c;
if(delta<0)
{
cout<<"NO\n";
continue;
}
if(pd(delta))
{
int tmp=-b+sqrt(delta),tmp2=-b-sqrt(delta);
if(tmp/(2.0*a)>tmp2/(2.0*a))
{
fun(tmp);
cout<<'\n';
}
else
{
fun(tmp2);
cout<<'\n';
}
}
else
{
if(b!=0)fun(-b);
if(delta==0)
{
cout<<'\n';
continue;
}
double tmp=-b+sqrt(delta),tmp2=-b-sqrt(delta);
int q=get(delta);
int ttmp=q/__gcd(abs(q),abs(2*a));
lf=(2*a)/__gcd(abs(q),abs(2*a));
if(tmp/double(2*a)<tmp2/double(2*a))ttmp=-ttmp;
if(lf<0)
{
ttmp=-ttmp;
lf=-lf;
}
if(ttmp!=1)
{
if(ttmp==-1)cout<<'-';
else
{
if(ttmp>0&&b)cout<<'+';
cout<<ttmp;
cout<<'*';
}
}
else if(b)cout<<'+';
delta/=get(delta)*get(delta);
cout<<"sqrt("<<delta<<')';
if(lf!=1)cout<<'/'<<lf;
cout<<'\n';
}
}
return 0;
}