Numbers with prime digits whose sum is 13
func generate_from_prefix(sum, p, base, digits) {
var seq = [p]
for d in (digits) {
seq << __FUNC__(sum, [d, p...], base, digits)... if (p.sum+d <= sum)
}
return seq
}
func numbers_with_digitsum(sum, base = 10, digits = (base-1 -> primes)) {
digits.map {|p| generate_from_prefix(sum, [p], base, digits)... }\
.map {|t| digits2num(t, base) }\
.grep {|t| t.sumdigits(base) == sum }\
.sort
}
say numbers_with_digitsum(13)Output:
Last updated
Was this helpful?