12345678910111213141516171819202122232425262728293031323334353637383940 |
- #!/usr/bin/ruby
- # a(n) is the smallest number that requires at least n repdigits (not necessary distinct) to sum.
- # https://oeis.org/A336748
- # Known terms:
- # 1, 10, 21, 320, 2219, 32218, 332217, 3332216, 33332215
- var n = 6
- var limit = 32218
- var arr = []
- for k in (1..9) {
- for j in (1..limit.len) {
- arr << Num("#{k}"*j)
- }
- }
- arr = arr.grep { _ < limit }.uniq.sort
- var seen = Hash()
- for k in (1..n) {
- arr.combinations_with_repetition(k, {|*a|
- var t = a.sum
- if (seen.has(t)) {
- seen{t} = k if (k < seen{t})
- }
- else {
- seen{t} = k
- }
- })
- }
- var z = seen.grep_v{ _ == n }.keys.map{.to_n}.min
- say [z, seen{z}]
|