%I #15 Jan 03 2025 18:39:12
%S 1,3,11,15,13,9,5,21,33,59,71,49,47,35,15,13,43,73,109,123,117,109,
%T 167,141,113,77,43,5,51,95,145,201,263,281,397,413,317,333,269,239,
%U 183,121,63,11,81,147,219,307,379,471,567,623,517,569,683,503,545,473,395,311
%N a(n) is the Manhattan distance between n^3 and (n+1)^3 in a square spiral of positive integers with 1 at the center.
%C Spiral begins:
%C .
%C 49 26--27--28--29--30--31
%C | | |
%C 48 25 10--11--12--13 32
%C | | | | |
%C 47 24 9 2---3 14 33
%C | | | | | | |
%C 46 23 8 1 4 15 34
%C | | | | | |
%C 45 22 7---6---5 16 35
%C | | | |
%C 44 21--20--19--18--17 36
%C | |
%C 43--42--41--40--39--38--37
%e Manhattan distance between 2^3=8 and 3^3=27 is 3 in a square spiral, so a(2)=3.
%o (Python)
%o import math
%o def get_x_y(n):
%o sr = int(math.sqrt(n-1)) # Ok for small n's
%o sr = sr-1+(sr&1)
%o rm = n-sr*sr
%o d = (sr+1)//2
%o if rm<=sr+1:
%o return -d+rm, d
%o if rm<=sr*2+2:
%o return d, d-(rm-(sr+1))
%o if rm<=sr*3+3:
%o return d-(rm-(sr*2+2)), -d
%o return -d, -d+rm-(sr*3+3)
%o for n in range(1, 77):
%o x0, y0 = get_x_y(n**3)
%o x1, y1 = get_x_y((n+1)**3)
%o print(abs(x1-x0)+abs(y1-y0), end=', ')
%Y Cf. A214526, A232113, A232114, A232115.
%K nonn
%O 1,2
%A _Alex Ratushnyak_, Jan 16 2014