代码如下:(C++)
#include<bits/stdc++.h>
#define int long long
using namespace std;
double t,m,a,b,c,v,x,q,p,g;
bool pingfang(double n){
if((int)sqrt(n)*(int)sqrt(n)==n){
return true;
}
return false;
}
void print(int a,int b){
if(a*b<0)cout<<"-";
a=abs(a);
b=abs(b);
int g=__gcd(a,b);
a/=g;
b/=g;
if(a==0)return;
if(b==1)cout<<a;
else cout<<a<<"/"<<b;
}
void printc(int a,int c,int b){
a=abs(a);
b=abs(b);
int g=__gcd(a,b);
a/=g;
b/=g;
if(a!=1)cout<<a<<"*";
cout<<"sqrt("<<c<<")";
if(b!=1)cout<<"/"<<b;
// if(a==1&&b==1)cout<<"sqrt("<<c<<")";
// else if(b==1)cout<<a<<"*sqrt("<<c<<")";
// else cout<<a<<"*sqrt("<<c<<")/"<<b;
}
signed main(){
// freopen("3.in","r",stdin);
// freopen("3.out","w",stdout);
cin>>t>>m;
for(x=1;x<=t;x++){
cin>>a>>b>>c;
v=b*b-4*a*c;
if(v<0){
cout<<"NO"<<endl;
continue;
}
for(int i=v;i>=0;i--){
if(i!=0&&(int)v%(int)i!=0)continue;
if(!pingfang(i))continue;
// if(i==1){
// cout<<"sqrt("<<v<<")";
// }
if(i!=v){
if(-b!=0){
print(-b,2*a);
cout<<"+";
}
printc(sqrt(i),v/(i),2*a);
}
else print(-b+sqrt(i),2*a);
cout<<endl;
break;
}
}
return 0;
}