#include <bits/stdc++.h>
using namespace std;
#define Re return
#define int long long
int t, m;
inline int gcd(int a, int b) {
if (!b) {
return a;
}
return gcd(b, a % b);
}
inline void fraction(int a, int b) {
int k = gcd(a, b);
a /= k, b /= k;
if (b < 0)
a = -a, b = -b;
printf("%lld/%lld", a, b);
}
inline void fraction2(int a, int b) {
printf("sqrt(%lld)/%lld\n", a, b);
}
inline void sol(int a, int b, int c) {
int derta = b * b - 4 * a * c;
if (derta < 0) {
printf("NO\n");
Re;
}
bool f = 0, f2 = 0;
int q2 = 1;
bool mem = 0;
for (int i = 2; i * i <= derta; i++) {
while (!(derta % (i * i))) {
derta /= (i * i);
q2 *= i;
}
}
int q1 = -b;
bool itg1 = 0, itg2 = 0;
if (a > 0) {
f2 = 1;
}
if (derta <= 1) {
int k = q2 * sqrt(derta);
if (f2) {
int fir = -b + k, sec = 2 * a;
if ((fir / sec)*sec == fir)
printf("%lld", (fir / sec));
else
fraction(fir, sec);
printf("\n");
Re;
} else {
int fir = -b - k, sec = 2 * a;
if ((fir / sec)*sec == fir)
printf("%lld", (fir / sec));
else
fraction(fir, sec);
printf("\n");
Re;
}
}
if (q2 / (2 * a) * (2 * a) == q2)
q2 /= 2 * a, itg2 = 1;
if (q1 / (2 * a) * (2 * a) == q1)
q1 /= 2 * a, itg1 = 1;
if (a < 0) {
a = -a;
q2 = -q2;
}
if (q1 != 0) {
if (itg1) {
printf("%lld+", q1);
} else {
fraction(q1, 2 * a);
printf("+");
}
}
int q3 = (1.0 / (double(1.0 * q2 / (2 * a))));
if (q2 == 1 && itg2) {
printf("sqrt(%lld)\n", derta);
Re;
} else if (itg2) {
printf("%lld*sqrt(%lld)\n", q2, derta);
Re;
} else if (q3 * (double(1.0 * q2 / (2 * a))) == 1) {
fraction2(derta, q3);
Re;
} else {
int d = 2 * a, k = gcd(q2, d);
q2 /= k, d /= k;
if (q2 == 1) {
printf("sqrt(%lld)/%lld\n", derta, d);
Re;
}
printf("%lld*sqrt(%lld)/%lld\n", q2, derta, d);
Re;
}
}
inline void Read() {
scanf("%lld%lld", &t, &m);
while (t--) {
int a, b, c;
scanf("%lld%lld%lld", &a, &b, &c);
sol(a, b, c);
}
}
signed main() {
Read();
}
``````