%I #28 Aug 02 2023 11:43:15
%S 1,6,2,3,5,4,4,3,4,5,5,3,6,4,4,3,5,5,4,2,3,5,4,3,6,6,4,4,5,5,4,6,4,4,
%T 4,6,4,6,6,6,6,4,4,6,3,4,3,6,6,4,6,6,6,5,7,6,7,6,6,6,7,5,6,6,6,7,5,5,
%U 5,4,4,7,5,5,5,7,7,4,7,4,5,3,4,6,6,6,7,6,6,4,7,7,4,5,5,4,6,3,6,7,6,4
%N Number of iterations required for happy number A007770(n) to converge to 1.
%C The count includes both the start and end.
%H Reinhard Zumkeller, <a href="/A090425/b090425.txt">Table of n, a(n) for n = 1..10000</a>
%H T. Cai and Xia Zhou, <a href="http://dx.doi.org/10.1216/RMJ-2008-38-6-1921">On the heights of happy numbers</a>, Rocky Mount. J. Math. 38 (6) (2008) 1921-1926. [From _R. J. Mathar_, Apr 22 2010]
%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/HappyNumber.html">Happy Number</a>.
%e 7 is the 2nd happy number and iterated digit squarings and additions give the sequence {7,49,97,130,10,1}, so a(2)=6.
%t happy[n_] := If[(list = NestWhileList[Plus @@ (IntegerDigits[#]^2) &, n, UnsameQ, All])[[-1]] == 1, Length[list] - 1, Nothing]; Array[happy, 700] (* _Amiram Eldar_, Apr 12 2022 *)
%o (Haskell)
%o a090425 n = snd $ until ((== 1) . fst)
%o (\(u, v) -> (a003132 u, v + 1)) (a007770 n, 1)
%o -- _Reinhard Zumkeller_, Aug 07 2012
%o (Python)
%o from itertools import count, islice
%o def A090425_gen(): # generator of terms
%o for n in count(1):
%o c = 1
%o while n not in {1,37,58,89,145,42,20,4,16}:
%o n = sum((0, 1, 4, 9, 16, 25, 36, 49, 64, 81)[ord(d)-48] for d in str(n))
%o c += 1
%o if n == 1:
%o yield c
%o A090425_list = list(islice(A090425_gen(),20)) # _Chai Wah Wu_, Aug 02 2023
%Y Cf. A007770.
%Y Cf. A003132.
%K nonn,base
%O 1,2
%A _Eric W. Weisstein_, Nov 30 2003
|