

A009101


Fixed point when iterating the function f on n, where f(x) = x + product of digits of x.


2



0, 102, 102, 102, 102, 10, 102, 102, 102, 102, 10, 102, 102, 102, 102, 20, 102, 102, 102, 60, 20, 110, 102, 110, 102, 50, 102, 140, 60, 110, 30, 70, 102, 50, 70, 50, 102, 170, 102, 102, 40, 140, 50, 80, 60, 140, 70, 110, 80, 150, 50, 170, 102, 202, 102, 80, 170, 110, 170
(list;
graph;
refs;
listen;
history;
text;
internal format)



OFFSET

0,2


COMMENTS

Starting at n and iterating f, a(n) is the first number reached that contains the digit zero.
Record values of the number of steps to obtain a(n) are 10 for n = 1, 27 for n = 187, 28 for n = 3237326, 32 for n = 3515987, 33 for n = 22572473. It is conjectured that a(n) is obtained in a finite number of steps for every n.
Comment from Adam Kabela, Nov 19 2013: (Start)
The number of steps is finite for every n. The idea is for large k, 9^k < 10^(k1). The x+f(x) is not increasing fast enough. At some point for high k, in one step the first digit is increased by at most 1. But 9+1= 10. Hence a zero appears sooner or later for every starting x. (The idea is mentioned for example in the XKCD Forum, see link below.) The argument holds not just in base 10 but in other bases too. (End)
The XKCD Forum mentioned by Kabela says "If it is unbounded, then there is a first element in the sequence above 10^n for any n. The previous number had n digits, so the digit product that was added to get above 10^n is at most 9^n. Therefore the current number is at most 10^n+9^n. For n>21, this number begins with the digits "10", so from then on the product of the digits is zero and the sequence no longer increases." (End)


LINKS



EXAMPLE

f(5) = 10, f(10) = 10, hence a(5) = 10.
f(19) = 28, f(28) = 44, f(44) = 60, f(60) = 60, hence a(19) = 60.


MAPLE

a:= n> (m> `if`(m=0, n, a(n+m)))(mul(i, i=convert(n, base, 10))):


MATHEMATICA

Table[FixedPoint[#+Times@@IntegerDigits[#]&, n], {n, 0, 60}] (* Harvey P. Dale, Oct 11 2012 *)


PROG

(Python)
from math import prod
def f(x): return x + prod(map(int, str(x)))
def a(n):
x, fx = n, f(n)
while x != fx: x, fx = fx, f(fx)
return x


CROSSREFS



KEYWORD

nonn,base


AUTHOR



EXTENSIONS



STATUS

approved



