B - A^A
$A^{A} = B \le 10^{18} < 16^{16}$ なので、$A$ として $15$ 以下を全て調べればいいです。
Pythonでは $0^{0}=1$ なので、そのケースを含まないように注意しましょう。
b = int(input()) for a in range(1, 19): if a ** a == b: exit(print(i)) print(-1)
#include <iostream> using namespace std; int main() { long long B; cin >> B; int A = -1; for (int i = 1; i <= 15; i++) { long long A_A = 1; for (int j = 0; j < i; j++) { A_A *= i; } if (A_A == B) { A = i; } } cout << A; }