#include<bits/stdc++.h>
#define gcd __gcd
using namespace std;
int t,m;
int delta;
int main(){
scanf("%d%d",&t,&m);
while(t--){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
delta=b*b-4*a*c;
if(delta<0){
printf("NO\n");
continue;
}
int sqr_del=1;
for(int i=2;i<delta;i++){
while(delta%(i*i)==0)
sqr_del*=i,delta/=i*i;
}
int p=-b;
int q=2*a;
if(q<0)q=-q,p=-p;
if(delta==1)delta=0,p+=sqr_del;
int g1=gcd(abs(p),q),g2=gcd(sqr_del,q);
if(delta==0){
if(p%q==0)printf("%d",p/q);
else printf("%d/%d",p/g1,q/g1);
}
else{
if(p!=0){
if(p%q==0)printf("%d",p/q);
else printf("%d/%d",p/g1,q/g1);
printf("+");
}
if(sqr_del/g2!=1)printf("%d*",sqr_del/g2);
printf("sqrt(%d)",delta);
if(q/g2!=1)printf("/%d",q/g2);
}
printf("\n");
}
return 0;
}
自己下载数据后自测发现除零错误,求改。