马蜂巨丑见谅
#include<bits/stdc++.h>
using namespace std;
int p,q,zuo,you;
bool flag=0;
void go(){
int asd=min(p,q);
for(int i=2;i<=asd;i++){
while(p%i==0&&q%i==0){
p/=i;
q/=i;
}
}
}
void sqr(int sum){
zuo=1;
you=sum;
for(int i=2;i*i<=sum;i++){
while(sum%(i*i)==0){
sum/=(i*i);
zuo*=i;
you/=(i*i);
}
}
}
void print(int p,int q,int sum){
if(p==0){
return;
}
else{
if(sum%2==0){
cout<<"-";
}
flag=1;
if(q==1){
cout<<p;
}
else{
cout<<p<<"/"<<q;
}
}
}
bool judge(int delta){
int del=sqrt(delta);
if(del*del==delta){
return 1;
}
return 0;
}
void Print(int A,int B,int C){
p=A;
q=C;
go();
if(p==0){
return;
}
else{
if(flag==1){
cout<<"+";
}
flag=1;
if(p==1){
cout<<"sqrt("<<B<<")";
}
else{
cout<<p<<"*sqrt("<<B<<")";
}
if(q==1){
return;
}
else{
cout<<"/"<<q;
}
}
}
int main(){
//freopen("uqe.in","r",stdin);
//freopen("uqe.out","w",stdout);
int T,M;
cin>>T>>M;
while(T--){
flag=0;
int a,b,c;
cin>>a>>b>>c;
double delta=b*b-4*a*c;
if(delta<0){
cout<<"NO"<<endl;
continue;
}
else if(judge(delta)){
q=2*a;
if(q<0){
p=-b-sqrt(delta);
}
else{
p=-b+sqrt(delta);
}
int sum=0;
if(p<0)sum++;
if(q<0)sum++;
p=abs(p);
q=abs(q);
go();
print(p,q,sum);
}
else{
q=2*a;
p=-b;
int num=0;
if(p<0)num++;
if(q<0)num++;
p=abs(p);
q=abs(q);
go();
print(p,q,num);
q=2*a;
sqr(delta);
Print(zuo,you,q);
}
if(flag==0){
cout<<0;
}
cout<<endl;
}
return 0;
}
玄3关