我不理解!!!!!!!!
#include<bits/stdc++.h>
#define eps 1e-9
int bin[100005];
int t,m;
using namespace std;
int gcd(int x,int y){
if(x%y==0)return y;
return gcd(y,x%y);
}
void print(int b,int a,int t){
//cout<<b<<" "<<a<<" "<<t<<endl;
int fl=0,na=a,nb=1;
if(t<0){
t=-t;
nb=-1;
}
//cout<<nb<<endl;
if((int)sqrt(t)*(int)sqrt(t)==t){
fl=1;
}
if(!fl)
for(int i=2;i<=m;i++){
if(t%bin[i]==0){
while(t%bin[i]==0){
t/=bin[i];
nb*=i;
}
}
}
int tmp=gcd(abs(na),abs(nb));
if((nb>0&&na<0)||(nb<0&&na<0)){
nb=-nb;
na=-na;
}
if((b<0&&a<0)||(b>0&&a<0)){
b=-b;
a=-a;
}
if(fl){
b+=sqrt(t);
}
nb/=tmp;
na/=tmp;
if(b!=0){
if(b%a==0){
cout<<b/a;
}
else{
int tmp=gcd(abs(a),abs(b));
//cout<<tmp<<endl;
cout<<b/tmp<<"/"<<a/tmp;
}
if(!fl)
cout<<"+";
}
if(!fl){
//cout<<nb<<" "<<na<<endl;
if(nb%na==0){
nb/=na;
}
if(nb!=1){
cout<<nb<<"*";
}
cout<<"sqrt("<<t<<")";
if(na!=1){
cout<<"/"<<na;
}
}
cout<<endl;
}
int main(){
freopen("uqe.in","r",stdin);
freopen("uqe.out","w",stdout);
cin>>t>>m;
for(int i=2;i<=m;i++){
bin[i]=i*i;
}
while(t--){
long long a,b,c;
cin>>a>>b>>c;
long long t=b*b-4*a*c;
if(t<0){
cout<<"NO\n";
continue;
}
double x1=(1.0*(-b)+sqrt(t*1.0))/2.0/a,x2=(1.0*(-b)-sqrt(t*1.0))/2.0/a;
if(x1+eps<x2){
//cout<<"jak";
print(-b,2*a,-t);
}
else if(x2+eps<x1){
print(-b,2*a,t);
}
else{
print(-b,2*a,abs(t));
}
}
return 0;
}