%I #18 Jul 05 2022 11:13:12
%S 1,6,7,8,9,2,3,4,5,18,19,20,21,22,23,24,25,10,11,12,13,14,15,16,17,38,
%T 39,40,41,42,43,44,45,46,47,48,49,26,27,28,29,30,31,32,33,34,35,36,37,
%U 66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,50,51,52,53,54,55,56
%N Permutation of natural numbers arising from a square spiral.
%C Write out the natural numbers in a square counterclockwise spiral:
%C .
%C 17--16--15--14--13
%C | |
%C 18 5---4---3 12
%C | | | |
%C 19 6 1---2 11
%C | | |
%C 20 7---8---9--10
%C |
%C 21--22--23--24--25
%C .
%C Now read off the numbers in a counterclockwise spiral: 1 -> 6 -> 7 -> 8 -> 9 -> 2 -> 3 -> 4 -> 5 -> 18 -> etc.
%H Eric M. Schmidt, <a href="/A090928/b090928.txt">Table of n, a(n) for n = 1..1000</a>
%t With[{x = Floor[(Floor[Sqrt[n-1]]+1)/2]}, Table[If[n +4*x <= (2*x+1)^2, n+4*x, n-4*x], {n, 1, 75}]] (* _G. C. Greubel_, Feb 05 2019 *)
%o (Sage)
%o def a(n):
%o x = (isqrt(n-1)+1)//2
%o return n + 4*x if n + 4*x <= (2*x+1)^2 else n - 4*x
%o [a(n) for n in (1..75)] # _Eric M. Schmidt_, May 18 2016
%o (PARI) {s(n) = ((sqrtint(n-1)+1)/2)\1};
%o for(n=1,75, print1(if(n+4*s(n) <= (2*s(n)+1)^2, n +4*s(n), n - 4*s(n)), ", ")) \\ _G. C. Greubel_, Feb 05 2019
%Y Cf. A020703, A090861, A090915, A090925, A090929, A090930.
%K easy,nonn
%O 1,2
%A _Felix Tubiana_, Feb 26 2004
%E Offset corrected by _Eric M. Schmidt_, May 18 2016