# compute sum of digits
def digitSum(n)
s = 0
while n > 0
s += n % 10
n /= 10
end
s
end
def main
n = 2
loop do
s = digitSum(n)
# Try powers k = 2..10 (enough for reasonable ranges)
p = s * s
(2..10).each do |k|
if p == n
puts "Found: #{n} = (#{s})^#{k}"
return
end
p *= s # next power
end
n += 1
end
end
main
=begin
run:
Found: 81 = (9)^2
=end