%I #43 Jan 10 2025 03:05:23
%S 2,4,16,136,1936,181936,164181936,13616164181936,
%T 193613613616164181936,1819361936193613613616164181936,
%U 1641819361819361819361936193613613616164181936,136161641819361641819361641819361819361819361936193613613616164181936
%N a(1) = 2; thereafter a(n) is the number obtained by replacing each digit of a(n-1) with its square.
%H John Cerkan, <a href="/A061588/b061588.txt">Table of n, a(n) for n = 1..18</a>
%H William Davidson, <a href="https://www.maa.org/sites/default/files/pdf/abstracts/mf2012_abstracts.pdf">Introducing the peculiar 'Davidson Sequence'</a>, MathFest 2012; see p. 37.
%F From _William Davidson_, Aug 15 2012: (Start)
%F For integer n > 5,
%F a(n) = a(n-4)*10^(L(a(n-5))+L(a(n-1))) + a(n-5)*10^(L(a(n-1))) + a(n-1), where L(x) is the number of digits in x.
%F L(a(n)) = (W^(n-1)*[s1]^T)^T*[d]^T, where W is the 5 X 5 square matrix [(0 1 0 0 0) (0 0 1 0 0) (0 0 0 1 0) (0 0 0 0 1) (1 1 0 0 1)], [s1] = [1 2 3 4 6], [d] = [1 0 0 0 0], and T denotes transpose.
%F To determine the initial digits of a(n), n > 5, let b = ((n+2) mod 4) + 2. Then a(n) begins with a(b). E.g. let n = 100, b = 4, then a(100) = 1936... (End)
%e After 136: the squares of 1, 3, 6 are 1, 9, 36 respectively hence the next term is 1936.
%e a(11) = a(7)*10^L(a(6)+a(10))+a(6)*10^L(a(10))+a(10)
%e = 13616164181936*10^55 + 164181936*10^46 +
%e 1641819361819361819361936193613613616164181936
%e = 136161641819361641819361641819361819361819361936193613613616164181936
%e a(100) = 1936...*10^L(a(96)+a(99))+136...*10^L(a(99))+136...936, where L(100) has approximately 2.74*10^17 digits. - _William Davidson_, Aug 15 2012
%t NestList[FromDigits[Flatten[IntegerDigits[IntegerDigits[#]^2]]] &, 2, 11] (* _Paolo Xausa_, Jan 10 2025 *)
%o (Python)
%o def digits(n):
%o d = []
%o while n > 0:
%o d.append(n % 10)
%o n = n // 10
%o return d
%o def sqdig(n):
%o new = 0
%o num = digits(n)
%o spacing = 0
%o while num:
%o k = num.pop(0)
%o new += (10 ** (spacing)) * (k**2)
%o if k > 3:
%o spacing += 1
%o spacing += 1
%o return new
%o def a(n):
%o i = 2
%o while n > 1:
%o i = sqdig(i)
%o n -= 1
%o return i
%o # _David Nacin_, Aug 19 2012
%o (Python)
%o from itertools import accumulate
%o def f(an, _): return int("".join(str(int(d)**2) for d in str(an)))
%o print(list(accumulate([2]*11, f))) # _Michael S. Branicky_, Jan 01 2022
%K nonn,easy,base
%O 1,1
%A _Amarnath Murthy_, May 13 2001
%E More terms from Larry Reeves (larryr(AT)acm.org) and _Asher Auel_, May 15 2001. Corrected by _Matthew Vandermast_, Apr 23 2003