rt,0pts,是我的代码有问题吗?感觉是判 -1 的时候出了问题,求 hack
#include <bits/stdc++.h>
using namespace std;
#define int long long
int T;
int read() {
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') { f = (ch == '-') ? -1 : f; ch = getchar(); }
while (ch >= '0' && ch <= '9') { x = x * 10 + ch - '0'; ch = getchar(); }
return x * f;
}
int gcd(int x, int y) {
if (x % y == 0) return y;
else return gcd(y, x % y);
}
signed main() {
T = read();
while (T--) {
int x, y, z;
bool flag = false;
cin >> x >> z;
for (int i = pow(z, 1.0 / 3); i * i * i >= 1; i--) {
if (z % (i * i * i) != 0) continue;
int y = z / (i * i * i) / (x / i) * i;
if (y != 0) cout << y << endl, flag = true;
break;
}
if (!flag) cout << -1 << endl;
}
return 0;
}