%I #15 Sep 06 2022 13:23:50
%S 0,1,3,4,9,6,25,8,49,16,11,100,13,144,15,196,81,18,289,20,361,22,441,
%T 24,529,36,27,676,29,784,31,900,33,1024,35,1156,625,38,1369,40,1521,
%U 42,1681,44,1849,46,2025,48,2209,64,51,2500,53,2704,55,2916,57,3136,59
%N Earliest sequence with a(a(n)) = n^2.
%H T. D. Noe, <a href="/A054791/b054791.txt">Table of n, a(n) for n = 0..1000</a>
%H <a href="/index/Aa#aan">Index entries for sequences of the a(a(n)) = 2n family</a>
%F if n is a square then a(n) = a(sqrt(n))^2, otherwise if the difference between n and the highest square less than n is odd then a(n) = n+1, otherwise a(n) = (n-1)^2.
%t a[n_] := a[n] = Which[r = Sqrt[n]; IntegerQ[r], a[r]^2, OddQ[n - Floor[r]^2], n+1, True, (n-1)^2]; a[0]=0; a[1]=1; Table[a[n], {n, 0, 58}] (* _Jean-François Alcover_, Aug 07 2012, after formula *)
%o (Haskell)
%o a054791 n = a054791_list `genericIndex` n
%o a054791_list = 0 : 1 : f 2 where
%o f x | r ^ 2 == x = a054791 r ^ 2 : f (x + 1)
%o | odd (x - r) = x + 1 : f (x + 1)
%o | otherwise = (x - 1) ^ 2 : f (x + 1)
%o where r = a000196 x
%o -- _Reinhard Zumkeller_, Oct 27 2013
%Y Cf. A002516.
%K nice,nonn
%O 0,3
%A _Henry Bottomley_, Apr 27 2000