#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void Code_By_Mohamed_Khaled() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
vector<ll> get_divisors(ll n) {
vector<ll> div;
n = abs(n);
for (ll i = 1; i * i <= n; ++i) {
if (n % i == 0) {
div.push_back(i);
div.push_back(-i);
if (i * i != n) {
div.push_back(n / i);
div.push_back(-(n / i));
}
}
}
sort(div.begin(), div.end());
return div;
}
ll solve_cubic(ll a, ll b, ll c, ll d) {
vector<ll> divisors = get_divisors(d);
for (ll x : divisors) {
ll val = a * x * x * x + b * x * x + c * x + d;
if (val == 0) {
return x; // Found integer root
}
}
return LLONG_MIN; // No integer root found
}
int main() {
Code_By_Mohamed_Khaled();
ll t;
cin >> t;
while (t--) {
ll a, b, c, d;
cin >> a >> b >> c >> d;
ll root = solve_cubic(a, b, c, d);
if (root == LLONG_MIN) {
cout << "NO\n";
} else {
cout << "YES\n" << root << "\n";
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKdm9pZCBDb2RlX0J5X01vaGFtZWRfS2hhbGVkKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKfQoKdmVjdG9yPGxsPiBnZXRfZGl2aXNvcnMobGwgbikgewogICAgdmVjdG9yPGxsPiBkaXY7CiAgICBuID0gYWJzKG4pOwogICAgZm9yIChsbCBpID0gMTsgaSAqIGkgPD0gbjsgKytpKSB7CiAgICAgICAgaWYgKG4gJSBpID09IDApIHsKICAgICAgICAgICAgZGl2LnB1c2hfYmFjayhpKTsKICAgICAgICAgICAgZGl2LnB1c2hfYmFjaygtaSk7CiAgICAgICAgICAgIGlmIChpICogaSAhPSBuKSB7CiAgICAgICAgICAgICAgICBkaXYucHVzaF9iYWNrKG4gLyBpKTsKICAgICAgICAgICAgICAgIGRpdi5wdXNoX2JhY2soLShuIC8gaSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgc29ydChkaXYuYmVnaW4oKSwgZGl2LmVuZCgpKTsKICAgIHJldHVybiBkaXY7Cn0KCmxsIHNvbHZlX2N1YmljKGxsIGEsIGxsIGIsIGxsIGMsIGxsIGQpIHsKICAgIHZlY3RvcjxsbD4gZGl2aXNvcnMgPSBnZXRfZGl2aXNvcnMoZCk7CiAgICBmb3IgKGxsIHggOiBkaXZpc29ycykgewogICAgICAgIGxsIHZhbCA9IGEgKiB4ICogeCAqIHggKyBiICogeCAqIHggKyBjICogeCArIGQ7CiAgICAgICAgaWYgKHZhbCA9PSAwKSB7CiAgICAgICAgICAgIHJldHVybiB4OyAgLy8gRm91bmQgaW50ZWdlciByb290CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIExMT05HX01JTjsgIC8vIE5vIGludGVnZXIgcm9vdCBmb3VuZAp9CgppbnQgbWFpbigpIHsKICAgIENvZGVfQnlfTW9oYW1lZF9LaGFsZWQoKTsKICAgIGxsIHQ7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBsbCBhLCBiLCBjLCBkOwogICAgICAgIGNpbiA+PiBhID4+IGIgPj4gYyA+PiBkOwogICAgICAgIGxsIHJvb3QgPSBzb2x2ZV9jdWJpYyhhLCBiLCBjLCBkKTsKICAgICAgICBpZiAocm9vdCA9PSBMTE9OR19NSU4pIHsKICAgICAgICAgICAgY291dCA8PCAiTk9cbiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY291dCA8PCAiWUVTXG4iIDw8IHJvb3QgPDwgIlxuIjsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=