Own digits power sum
func armstrong_numbers(n, base=10) {
var D = @(^base)
var P = D.map {|d| d**n }
var list = []
D.combinations_with_repetition(n, {|*c|
var v = c.sum {|d| P[d] }
if (v.digits(base).sort == c) {
list.push(v)
}
})
list.sort
}
for n in (3..10) {
say ("For n = #{'%2d' % n}: ", armstrong_numbers(n))
}Output:
Last updated
Was this helpful?