Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def test(n):
- f = [0] * 10001
- f[1], f[2], f[3] = 1, 2, 3
- p = [0]
- b = [i for i in range(8)] + [0] * 10001
- for i in range(1, 101):
- p.append(i * i * i)
- for i in range(4, n + 1):
- f[i] = 10000
- for j in range(len(p)):
- if i >= p[j] and f[i] > f[i - p[j]] + 1:
- f[i] = f[i - p[j]] + 1
- b[i] = p[j]
- return (f, b)
- n = int(input())
- x = test(n)
- f, b = x[0], x[1]
- print(f[n])
- def c(x):
- k = int( x ** (1 / 3))
- if k ** 3 == x:
- return k
- if (k + 1) ** 3 == x:
- return k + 1
- if n == f[n]:
- for i in range(n):
- print(1, end = ' ')
- else:
- x = []
- while n != 0:
- x.append(b[n])
- n = n - b[n]
- for i in x:
- print(c(i), end = ' ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement