// compute sum of digits
function digitSum(int $n): int {
$s = 0;
while ($n > 0) {
$s += $n % 10;
$n = intdiv($n, 10);
}
return $s;
}
for ($n = 2; ; $n++) {
$s = digitSum($n);
// Try powers k = 2..10 (enough for reasonable ranges)
$p = $s * $s;
for ($k = 2; $k <= 10; $k++) {
if ($p === $n) {
echo "Found: $n = ($s)^$k\n";
exit;
}
$p *= $s; // next power
}
}
/*
run:
Found: 81 = (9)^2
*/