A241173 Start with n; add to it any of its digits; repeat; a(n) = minimal number of steps needed to reach a palindrome.
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 2, 3, 2, 1, 4, 3, 2, 1, 1, 0, 3, 3, 2, 3, 3, 2, 4, 1, 3, 3, 0, 2, 2, 2, 1, 3, 2, 1, 2, 1, 3, 0, 2, 2, 3, 4, 2, 1, 4, 3, 2, 2, 0, 4, 3, 1, 3, 1, 4, 3, 1, 2, 2, 0, 3, 4, 3, 1, 3, 2, 2, 4, 2, 3, 0, 3, 1, 1, 3, 2, 3, 1, 2, 2, 3, 0, 5, 1, 2, 1, 4, 5, 2, 3, 4, 5, 0
Offset: 0
Examples
Examples for a(10) through a(23): a(10) = 1 via 10 -> 11 a(11) = 0 via 11 a(12) = 3 via 12 -> 13 -> 16 -> 22 a(13) = 2 via 13 -> 16 -> 22 a(14) = 3 via 14 -> 15 -> 16 -> 22 a(15) = 2 via 15 -> 16 -> 22 a(16) = 1 via 16 -> 22 a(17) = 4 via 17 -> 18 -> 19 -> 20 -> 22 a(18) = 3 via 18 -> 19 -> 20 -> 22 a(19) = 2 via 19 -> 20 -> 22 a(20) = 1 via 20 -> 22 a(21) = 1 via 21 -> 22 a(22) = 0 via 22 a(23) = 3 via 23 -> 25 -> 30 -> 33
References
- Eric Angelini, Posting to Sequence Fans Mailing List, Apr 20 2014
Links
- David A. Corneth, Table of n, a(n) for n = 0..9999
- David A. Corneth, PARI program
- David A. Corneth, Steps taken from n as described in name to reach a palindrome
Crossrefs
Programs
-
Mathematica
A241173[n_] := Module[{c, nx}, If[n == IntegerReverse[n], Return[0]]; c = 1; nx = n; While[ ! AnyTrue[nx = Flatten[nx + IntegerDigits[nx]], # == IntegerReverse[#] &], c++]; Return[c]]; Table[A241173[i], {i, 0, 100}] (* Robert Price, Mar 17 2019 *)
-
PARI
a(n,m=0)={ if( m, my(d); for(i=1,#d=vecsort(digits(n),,12), d[i] && if( m>1, a(n+d[i],m-1) /*&& !print1("/*",[n,d[i],m],"* /")*/, is_A002113(n+d[i])) && return(m)), is_A002113(n) || until(a(n,m++),); m)} \\ Memoization should be implemented to improve performance which remains poor esp. for terms just above 10^k+1. - M. F. Hasler, Apr 26 2014
-
PARI
\\ See Corneth link; faster than above. David A. Corneth, Mar 21 2019
Extensions
More terms from M. F. Hasler, Apr 26 2014
Comments