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?