https://www.luogu.com.cn/problem/P9750
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll T,M,p,q,h,m,n,num1=0,num2=0;
bool f=false,f1=false,f2=false;
ll gcd(ll a,ll b){
if(b==0) return a;
return gcd(b,a%b);
}
void add(ll a,ll b,ll c,ll d){
ll mu,zi;
//cout<<b*d<<' '<<a*d+b*c<<endl;
if(b==d){
mu=b;
zi=a+c;
}
else{
mu=b*d;
zi=a*d+b*c;
}
//cout<<mu<<' '<<zi<<endl;
ll cnt=1;
if(mu<0) cnt=1-cnt;
if(zi<0) cnt=1-cnt;
mu=(ll)abs(mu);
zi=(ll)abs(zi);
ll k=gcd(mu,zi);
if(cnt==0) zi=-zi;
mu/=k;
zi/=k;
if(mu==1) cout<<zi;
else cout<<zi<<'/'<<mu;
}
void pu(ll a,ll b){
if(a==0) return;
if(a%b==0) cout<<a/b;
else cout<<a<<'/'<<b;
if(f1==false) cout<<'+';
}
void init1(ll a,ll b){
if(b==0){
f=true;
return;
}
bool f2=false;
if(a*b<0){
f2=true;
}
a=(ll)abs(a);
b=(ll)abs(b);
ll g=__gcd(a,b);
a/=g;
b/=g;
if(f2==true) a=-a;
num1=a;
num2=b;
}
void init2(ll a,ll b,ll c){
if(a==0||b==0){
f1=true;
pu(num1,num2);
return;
}
a=(ll)abs(a);
c=(ll)abs(c);
ll h=__gcd(a,c);
a/=h;
c/=h;
if(a%c==0){
if(b==1) add(num1,num2,a/c,1);
else{
pu(num1,num2);
cout<<a<<"*sqrt("<<b<<")";
}
}else{
if(b==1) add(num1,num2,a,c);
else if(a==1){
pu(num1,num2);
cout<<"sqrt("<<b<<")/"<<c;
}
else{
pu(num1,num2);
cout<<a<<"*sqrt("<<b<<")/"<<c;
}
}
}
void deal(ll a,ll b,ll c){
ll delta=b*b-4*a*c;
if(delta<0){
cout<<"NO"<<endl;
return;
}
m=0;
n=0;
for(ll i=(ll)sqrt(delta);i>=1;i--){//sqrt(delta)
if(delta%(i*i)==0){
m=i;
n=delta/i/i;
break;
}
}
ll fenmu=2*a;
init1(-b,fenmu);
init2(m,n,fenmu);
cout<<endl;
}
int main(){
cin>>T>>M;
for(ll i=1;i<=T;i++){
cin>>p>>q>>h;
num1=0;
num2=0;
f=false;
f1=false;
if(p<0){
p=-p;
q=-q;
h=-h;
}
deal(p,q,h);
}
return 0;
}