#include #include #include #include #include using namespace std; const int inf = 0x3f3f3f3f; const int N = 100000; struct node { long long x, y; }a[N], c[N]; int main() { int T; scanf("%d", &T); while (T--) { long long A, B, C; int ka = 0, kc = 0; scanf("%I64d%I64d%I64d", &A, &B, &C); for(int i = 1; i * i <= A; ++i) { if (A % i == 0) a[ka].x = i, a[ka++].y = A / i; } for(int i = 1; i * i <= C; ++i) { if (C % i == 0) c[kc].x = i, c[kc++].y = C / i; } bool flag = 0; for(int i = 0; i < ka; ++i) { for(int j = 0; j < kc; ++j) { if ((a[i].x * c[j].y + a[i].y * c[j].x) == B) { flag = 1; break; } if ((a[i].x * c[j].x + a[i].y * c[j].y) == B) { flag = 1; break; } } if (flag) break; } if (flag) puts("YES"); else puts("NO"); } return 0; }