%I #40 Jul 21 2024 16:24:01
%S 0,1,2,3,4,5,6,7,8,9,22,123,132,137,139,168,173,179,186,188,193,197,
%T 213,231,233,267,276,299,312,317,319,321,323,332,346,364,371,389,391,
%U 398,436,463,618,627,634,643,672,681,713,719,726,731,762,791,816,818,839
%N Nonnegative numbers such that additive and multiplicative digital roots coincide.
%C If k is in this sequence then all permutations of (the digits of) k are in this sequence.
%C A010888(a(n)) = A031347(a(n)). - _Reinhard Zumkeller_, Jul 10 2013
%H Nathaniel Johnston, <a href="/A064702/b064702.txt">Table of n, a(n) for n = 1..10000</a>
%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/DigitalRoot.html">Digital Root</a>
%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/MultiplicativeDigitalRoot.html">Multiplicative Digital Root</a>
%H Wikipedia, <a href="http://en.wikipedia.org/wiki/Digital_root">Digital root</a>
%H Wikipedia, <a href="http://en.wikipedia.org/wiki/Multiplicative_digital_root">Multiplicative digital root</a>
%H <a href="/index/Ar#10-automatic">Index entries for 10-automatic sequences</a>.
%p A007954 := proc(n) return mul(d, d=convert(n,base,10)): end: A031347 := proc(n) local m: m:=n: while(length(m)>1)do m:=A007954(m): od: return m: end: A064702 := proc(n) option remember: local k: if(n=1)then return 1:fi: for k from procname(n-1)+1 do if(A031347(k)-1 = (k-1) mod 9)then return k: fi: od: end: seq(A064702(n),n=1..56); # _Nathaniel Johnston_, May 04 2011
%t okQ[n_]:=NestWhile[Times@@IntegerDigits[#]&,n,#>9&]== NestWhile[ Total[ IntegerDigits[ #]]&, n,#>9&]; Select[Range[1000],okQ] (* _Harvey P. Dale_, Apr 20 2011 *)
%o (Haskell)
%o a064702 n = a064702_list !! (n-1)
%o a064702_list = filter (\x -> a010888 x == a031347 x) [1..]
%o -- _Reinhard Zumkeller_, Jul 10 2013
%o (PARI) is(n) = my(cn = n); while(cn > 9, d = digits(cn); cn = prod(i = 1, #d, d[i])); cn - 1 == (n-1)%9 \\ _David A. Corneth_, Aug 23 2018
%o (Python)
%o from math import prod
%o def A010888(n):
%o while n > 9: n = sum(map(int, str(n)))
%o return n
%o def A031347(n):
%o while n > 9: n = prod(map(int, str(n)))
%o return n
%o def ok(n): return A010888(n) == A031347(n)
%o print([k for k in range(840) if ok(k)]) # _Michael S. Branicky_, Sep 17 2022
%Y Cf. A010888, A031347, A239427.
%K easy,nice,nonn,base
%O 1,3
%A _Santi Spadaro_, Oct 12 2001
%E Definition rephrased by _Reinhard Zumkeller_, Jul 10 2013
%E Initial 0 added by _Halfdan Skjerning_, Aug 21 2018