Digit fifth powers
func digit_nth_powers(n, base=10) {
var D = @(^base)
var P = D.map {|d| d**n }
var A = []
var m = (base-1)**n
for(var (k, t) = (1, 1); k*m >= t; (++k, t*=base)) {
D.combinations_with_repetition(k, {|*c|
var v = c.sum {|d| P[d] }
A.push(v) if (v.digits(base).sort == c)
})
}
A.sort.grep { _ > 1 }
}
for n in (3..8) {
var a = digit_nth_powers(n)
say "Sum of #{n}-th powers of their digits: #{a.join(' + ')} = #{a.sum}"
}Output:
Last updated
Was this helpful?