OFFSET
0,3
COMMENTS
Define f(n) = n - k^3 where (k+1)^3 > n >= k^3; a(n) = number of steps such that f(f(...f(n)))= 0.
Also sum of digits when writing n in base where place values are positive cubes, cf. A000433. [Reinhard Zumkeller, May 08 2011]
LINKS
Antti Karttunen & Reinhard Zumkeller (terms 1-10000), Table of n, a(n) for n = 0..10000
EXAMPLE
a(32)=6 because 32=27+1+1+1+1+1 (not 32=8+8+8+8).
a(33)=7 because 33=27+1+1+1+1+1+1 (not 33=8+8+8+8+1).
MAPLE
f:= proc(n, k) local m, j;
if n = 0 then return 0 fi;
for j from k by -1 while j^3 > n do od:
m:= floor(n/j^3);
m + procname(n-m*j^3, j-1);
end proc:
seq(f(n, floor(n^(1/3))), n=0..100); # Robert Israel, Aug 17 2015
MATHEMATICA
a[0] = 0; a[n_] := {n} //. {b___, c_ /; !IntegerQ[c^(1/3)], d___} :> {b, f = Floor[c^(1/3)]^3, c - f, d} // Length; Table[a[n], {n, 0, 100}] (* Jean-François Alcover, Aug 17 2015 *)
PROG
(PARI)
F=vector(30, n, n^3); /* modify to get other sequences of "greedy representations" */ last_leq(v, F)=
{ /* Return last element <=v in sorted array F[] */
local(j=1);
while ( F[j]<=v, j+=1 );
return( F[j-1] );
}
greedy(n, F)=
{
local(v=n, ct=0);
while ( v, v-=last_leq(v, F); ct+=1; );
return(ct);
}
vector(min(100, F[#F-1]), n, greedy(n, F)) /* show terms */
/* Joerg Arndt, Apr 08 2011 */
(Haskell)
a055401 n = s n $ reverse $ takeWhile (<= n) $ tail a000578_list where
s _ [] = 0
s m (x:xs) | x > m = s m xs
| otherwise = m' + s r xs where (m', r) = divMod m x
-- Reinhard Zumkeller, May 08 2011
(Scheme, with memoization-macro definec)
;; Antti Karttunen, Aug 16 2015
CROSSREFS
KEYWORD
easy,nonn
AUTHOR
Henry Bottomley, May 16 2000
EXTENSIONS
a(0) = 0 prepended by Antti Karttunen, Aug 16 2015
STATUS
approved