//可以找找规律,开方相当于除以一个数当这个数比二大的时候用开方,然后就是除二操作,该操作相当于减去n/2 #include <iostream> #include <algorithm> #include <cmath> using namespace std; int T; int main() { cin >> T; while (T--) { int n, m; cin >> n >> m; while (m) { if (n >= 6) { m--; int t = sqrt(n); if (t * t != n) { t++; } n = t; continue; } if (n >= 2) { int t = n / 2; if (t * 2 != n) { t++; } n = t; m--; continue; } n -= m; break; } cout << n << endl; } return 0; }