#include <iostream>
#include <cmath>
long long digitSum(long long n) {
long long s = 0;
while (n > 0) {
s += n % 10;
n /= 10;
}
return s;
}
int main() {
for (long long n = 2; ; n++) {
long long s = digitSum(n);
// Try powers k = 2..10 (enough for reasonable ranges)
long long p = s * s;
for (int k = 2; k <= 10; ++k) {
if (p == n) {
std::cout << "Found: " << n
<< " = (" << s << ")^" << k << "\n";
return 0;
}
p *= s; // next power
}
}
}
/*
run:
Found: 81 = (9)^2
*/