提交时间:2025-10-18 13:06:04

运行 ID: 38589

#pragma GCC optimize("Ofast,no-stack-protector,fast-math,inline,unroll-loops") #include <iostream> #include <cmath> using namespace std; using i64 = long long; constexpr int SQRT_EDGE = 54, MAX_EDGE = 3000, MAX_COST = 95; int power[SQRT_EDGE + 1]; inline void init() { for (int i = 1; i <= SQRT_EDGE; ++i) power[i] = pow(i, 8.0 / 7); } struct Solution { int ans = 1; i64 y; void solve(i64 cur, int len = 1, int step = 2) { if (cur > y) return; else if (step == 1 && (y > MAX_EDGE * MAX_EDGE * cur || ans > MAX_COST * MAX_COST * len)) return; else if (cur * MAX_EDGE >= y) { ans = max(ans, len * power[int(sqrt(double(y) / cur))]); return; } else if (step == 0) return; for (int i = 2; i <= SQRT_EDGE && cur * i * i <= y; ++i) solve(cur * i * i, len * power[i], step - 1); } void main() { i64 x; cin >> x >> y; solve(x); cout << ans << '\n'; } }; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int t; cin >> t; init(); while (t-- > 0) Solution().main(); return 0; }