cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A031346 Multiplicative persistence: number of iterations of "multiply digits" needed to reach a number < 10.

Original entry on oeis.org

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 1, 1, 1, 2, 2, 2, 2, 3, 2, 3, 1, 1, 2, 2, 2, 3, 2, 3, 2, 3, 1, 1, 2, 2, 2, 2, 3, 2, 3, 3, 1, 1, 2, 2, 3, 3, 2, 4, 3, 3, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 2, 3, 3, 3, 3, 3, 3, 2
Offset: 0

Views

Author

Keywords

Examples

			For n = 999: A007954(999) = 729, A007954(729) = 126, A007954(126) = 12 and A007954(12) = 2. The fourth iteration of "multiply digits" yields a single-digit number, so a(999) = 4. - _Felix Fröhlich_, Jul 17 2016
		

References

  • M. Gardner, Fractal Music, Hypercards and More Mathematical Recreations from Scientific American, Persistence of Numbers, pp. 120-1; 186-7, W. H. Freeman NY 1992.
  • James J. Tattersall, Elementary Number Theory in Nine Chapters, Cambridge University Press, 1999, page 35.

Crossrefs

Cf. A007954 (product of decimal digits of n).
Cf. A010888 (additive digital root of n).
Cf. A031286 (additive persistence of n).
Cf. A031347 (multiplicative digital root of n).
Cf. A263131 (ordinal transform).
Cf. A003001.

Programs

  • Magma
    f:=func; a:=[]; for n in [0..100] do s:=0; k:=n; while k ge 10 do s:=s+1; k:=f(k); end while; Append(~a,s); end for; a; // Marius A. Burtea, Jan 12 2020
  • Maple
    A007954 := proc(n) return mul(d, d=convert(n, base, 10)): end: A031346 := proc(n) local k,m: k:=0:m:=n: while(length(m)>1)do m:=A007954(m):k:=k+1: od: return k: end: seq(A031346(n),n=0..100); # Nathaniel Johnston, May 04 2011
  • Mathematica
    Table[Length[NestWhileList[Times@@IntegerDigits[#]&,n,#>=10&]],{n,0,100}]-1 (* Harvey P. Dale, Aug 27 2016 *)
  • PARI
    a007954(n) = my(d=digits(n)); prod(i=1, #d, d[i])
    a(n) = my(k=n, i=0); while(#Str(k) > 1, k=a007954(k); i++); i \\ Felix Fröhlich, Jul 17 2016
    
  • Python
    from operator import mul
    from functools import reduce
    def A031346(n):
        mp = 0
        while n > 9:
            n = reduce(mul, (int(d) for d in str(n)))
            mp += 1
        return mp
    # Chai Wah Wu, Aug 23 2014
    

Formula

Probably bounded, see A003001. - Charles R Greathouse IV, Nov 15 2022