// compute sum of digits
function digitSum(n: number): number {
let s: number = 0;
while (n > 0) {
s += n % 10;
n = Math.floor(n / 10);
}
return s;
}
function main(): void {
for (let n: number = 2; ; n++) {
const s: number = digitSum(n);
// Try powers k = 2..10 (enough for reasonable ranges)
let p: number = s * s;
for (let k: number = 2; k <= 10; k++) {
if (p === n) {
console.log(`Found: ${n} = (${s})^${k}`);
return;
}
p *= s; // next power
}
}
}
main();
/*
run:
Found: 81 = (9)^2
*/