cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A215468 Sum of the 8 nearest neighbors of n in a rotated-square spiral with positive integers.

This page as a plain text file.
%I A215468 #26 Aug 06 2025 12:16:30
%S A215468 50,62,72,86,76,84,122,88,144,104,166,120,152,160,144,218,160,168,248,
%T A215468 184,192,278,208,216,260,268,240,248,346,264,272,280,384,296,304,312,
%U A215468 422,328,336,344,400,408,368,376,384,506,400,408,416,424,552,440,448,456,464,598
%N A215468 Sum of the 8 nearest neighbors of n in a rotated-square spiral with positive integers.
%H A215468 David Radcliffe, <a href="/A215468/b215468.txt">Table of n, a(n) for n = 1..10000</a>
%e A215468 Spiral begins:
%e A215468                      85
%e A215468                      /
%e A215468                     /
%e A215468                   84 61-62
%e A215468                   /  /    \
%e A215468                  /  /      \
%e A215468                83 60 41-42 63
%e A215468                /  /  /    \  \
%e A215468               /  /  /      \  \
%e A215468             82 59 40 25-26 43 64
%e A215468             /  /  /  /    \  \  \
%e A215468            /  /  /  /      \  \  \
%e A215468          81 58 39 24 13-14 27 44 65
%e A215468          /  /  /  /  /    \  \  \  \
%e A215468         /  /  /  /  /      \  \  \  \
%e A215468       80 57 38 23 12  5--6 15 28 45 66
%e A215468       /  /  /  /  /  /    \  \  \  \  \
%e A215468      /  /  /  /  /  /      \  \  \  \  \
%e A215468    79 56 37 22 11  4  1--2  7 16 29 46 67
%e A215468      \  \  \  \  \  \   /  /  /  /  /  /
%e A215468       \  \  \  \  \  \ /  /  /  /  /  /
%e A215468       78 55 36 21 10  3  8 17 30 47 68
%e A215468         \  \  \  \  \   /  /  /  /  /
%e A215468          \  \  \  \  \ /  /  /  /  /
%e A215468          77 54 35 20  9 18 31 48 69
%e A215468            \  \  \  \   /  /  /  /
%e A215468             \  \  \  \ /  /  /  /
%e A215468             76 53 34 19 32 49 70
%e A215468               \  \  \   /  /  /
%e A215468                \  \  \ /  /  /
%e A215468                75 52 33 50 71
%e A215468                  \  \   /  /
%e A215468                   \  \ /  /
%e A215468                   74 51 72
%e A215468                     \   /
%e A215468                      \ /
%e A215468                      73
%e A215468 .
%e A215468 The 8 nearest neighbors of 4 are 1,3,5,10,11,12,21,23, their sum is 86, so a(4)=86.
%o A215468 (Python)
%o A215468 SIZE=17  # must be odd
%o A215468 grid = [0] * (SIZE*SIZE)
%o A215468 posX = posY = SIZE//2
%o A215468 saveX = [0]* (SIZE*SIZE+1)
%o A215468 saveY = [0]* (SIZE*SIZE+1)
%o A215468 grid[posY*SIZE+posX]=1
%o A215468 saveX[1]=posX
%o A215468 saveY[1]=posY
%o A215468 posX += 1
%o A215468 grid[posY*SIZE+posX]=2
%o A215468 saveX[2]=posX
%o A215468 saveY[2]=posY
%o A215468 n = 3
%o A215468 def walk(stepX, stepY, chkX, chkY):
%o A215468   global posX, posY, n
%o A215468   while 1:
%o A215468     posX+=stepX
%o A215468     posY+=stepY
%o A215468     grid[posY*SIZE+posX]=n
%o A215468     saveX[n]=posX
%o A215468     saveY[n]=posY
%o A215468     n+=1
%o A215468     if grid[(posY+chkY)*SIZE+posX+chkX]==0:
%o A215468         return
%o A215468 while posX!=SIZE-1:
%o A215468     walk(-1,  1, -1, -1)    # down-left
%o A215468     walk(-1, -1,  1, -1)    # up-left
%o A215468     walk( 1, -1,  1,  0)    # up-right
%o A215468     walk( 1,  0,  1,  1)    # right
%o A215468     walk( 1,  1, -1,  1)    # down-right
%o A215468 for s in range(1, n):
%o A215468     posX = saveX[s]
%o A215468     posY = saveY[s]
%o A215468     i,j = grid[(posY-1)*SIZE+posX-1], grid[(posY-1)*SIZE+posX+1]
%o A215468     u,v = grid[(posY+1)*SIZE+posX-1], grid[(posY+1)*SIZE+posX+1]
%o A215468     if i==0 or j==0 or u==0 or v==0:
%o A215468         break
%o A215468     k = grid[(posY-1)*SIZE+posX  ] + grid[(posY+1)*SIZE+posX  ]
%o A215468     k+= grid[ posY   *SIZE+posX-1] + grid[ posY   *SIZE+posX+1]
%o A215468     print(i+j+u+v+k, end=' ')
%o A215468 print()
%o A215468 for y in range(SIZE):
%o A215468     for x in range(SIZE):
%o A215468         print('%3d' % grid[y*SIZE+x], end=' ')
%o A215468     print()
%o A215468 (Python)
%o A215468 def spiral(x, y):
%o A215468     r = abs(x) + abs(y)
%o A215468     return 1 + 2*r*r + (y-r if x > 0 else r-y)
%o A215468 def A215468(n):
%o A215468     x = A010751(n-1)
%o A215468     y = A305258(n-1)
%o A215468     return sum(spiral(x+i, y+j) for i in (-1, 0, 1) for j in (-1, 0, 1)
%o A215468                if (i, j) != (0, 0)) # _David Radcliffe_, Aug 05 2025
%Y A215468 Coordinates (but 0-based): A010751, A305258.
%Y A215468 Other spiral sums: A214176, A214177, A214226, A214227, A214230, A214231, A214250, A214251, A214252.
%K A215468 nonn,easy
%O A215468 1,1
%A A215468 _Alex Ratushnyak_, Aug 11 2012