Numbers with same digit set in base 10 and base 16
^1e5 -> grep { Set(.digits...) == Set(.digits(16)...) }.sayfunc generate_from_prefix(limit, p, base, digits) {
var seq = [p]
for d in (digits) {
var t = [d, p...]
if (t.digits2num(base) <= limit) {
seq << __FUNC__(limit, t, base, digits)...
}
}
return seq
}
func numbers_with_same_digitset(limit, base = 10) {
(1..9).map {|p| generate_from_prefix(limit, [p], base, @(0..9))... }\
.map {|t| digits2num(t, base) }\
.grep {|t| Set(t.digits...) == Set(t.digits(base)...) }\
.sort\
.prepend(0)
}
say numbers_with_same_digitset(1e5, 16)Output:
Last updated