A165370 Smallest number whose sum of cubes of digits is n.
0, 1, 11, 111, 1111, 11111, 111111, 1111111, 2, 12, 112, 1112, 11112, 111112, 1111112, 11111112, 22, 122, 1122, 11122, 111122, 1111122, 11111122, 111111122, 222, 1222, 11222, 3, 13, 113, 1113, 11113, 2222, 12222, 112222, 23, 123, 1123, 11123
Offset: 0
Links
- Jon E. Schoenfield, Table of n, a(n) for n = 0..10000 (first 1001 terms from Reinhard Zumkeller)
Programs
-
PARI
a(n) = my(k=1); while(vecsum(apply(x->(x^3), digits(k))) != n, k++); k; \\ Michel Marcus, Sep 08 2019
-
Python
# using dynamic programming def A165370(n): # caching numbers,their tenth power (for fast concatenation) and cube sum cache = [(None, None, None)] * (n + 1) cache[0] = (0, 1, 0) cubes = [i**3 for i in range(10)] for i in range(1, min(n + 1, 5832)): for d in range(1, 10): if i - cubes[d] >= 0: sub_result, tenthpower, cubesum = cache[i - cubes[d]] if sub_result is not None: current = d * tenthpower + sub_result if cache[i][0] is None or current < cache[i][0]: cache[i] = (current, 10 * tenthpower, cubesum + cubes[d]) if n < 5832: return cache[n][0] sub_result, _, cubesum = cache[5103 + n % 729] nines = (n - cubesum) // 729 return (sub_result + 1) * (10 ** nines) - 1 # Ondrej Kutal, Oct 06 2024
Comments