def spiral_from_center(n):
# створюємо матрицю нулями
matrix = [[0 for _ in range(n)] for _ in range(n)]
# координати центру
x = y = n // 2
num = 1
matrix[y][x] = num
# напрямки (вправо, вниз, вліво, вгору)
directions = [(0, 1), (1, 0), (0, -1), (-1, 0)]
step = 1
while num < n * n:
for i, (dx, dy) in enumerate(directions):
for _ in range(step):
if num >= n * n:
break
x += dx
y += dy
num += 1
if 0 <= x < n and 0 <= y < n:
matrix[x][y] = num
if i % 2 == 1:
step += 1
return matrix
# --- головна програма ---
n = 17
matrix = spiral_from_center(n)
# гарне виведення квадратом
for row in matrix:
print(" ".join(f"{x:3}" for x in row))
ZGVmIHNwaXJhbF9mcm9tX2NlbnRlcihuKToKICAgICMg0YHRgtCy0L7RgNGO0ZTQvNC+INC80LDRgtGA0LjRhtGOINC90YPQu9GP0LzQuAogICAgbWF0cml4ID0gW1swIGZvciBfIGluIHJhbmdlKG4pXSBmb3IgXyBpbiByYW5nZShuKV0KCiAgICAjINC60L7QvtGA0LTQuNC90LDRgtC4INGG0LXQvdGC0YDRgwogICAgeCA9IHkgPSBuIC8vIDIKICAgIG51bSA9IDEKICAgIG1hdHJpeFt5XVt4XSA9IG51bQoKICAgICMg0L3QsNC/0YDRj9C80LrQuCAo0LLQv9GA0LDQstC+LCDQstC90LjQtywg0LLQu9GW0LLQviwg0LLQs9C+0YDRgykKICAgIGRpcmVjdGlvbnMgPSBbKDAsIDEpLCAoMSwgMCksICgwLCAtMSksICgtMSwgMCldCiAgICBzdGVwID0gMQoKICAgIHdoaWxlIG51bSA8IG4gKiBuOgogICAgICAgIGZvciBpLCAoZHgsIGR5KSBpbiBlbnVtZXJhdGUoZGlyZWN0aW9ucyk6CiAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKHN0ZXApOgogICAgICAgICAgICAgICAgaWYgbnVtID49IG4gKiBuOgogICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICB4ICs9IGR4CiAgICAgICAgICAgICAgICB5ICs9IGR5CiAgICAgICAgICAgICAgICBudW0gKz0gMQogICAgICAgICAgICAgICAgaWYgMCA8PSB4IDwgbiBhbmQgMCA8PSB5IDwgbjoKICAgICAgICAgICAgICAgICAgICBtYXRyaXhbeF1beV0gPSBudW0KICAgICAgICAgICAgaWYgaSAlIDIgPT0gMToKICAgICAgICAgICAgICAgIHN0ZXAgKz0gMQoKICAgIHJldHVybiBtYXRyaXgKCgojIC0tLSDQs9C+0LvQvtCy0L3QsCDQv9GA0L7Qs9GA0LDQvNCwIC0tLQpuID0gMTcKbWF0cml4ID0gc3BpcmFsX2Zyb21fY2VudGVyKG4pCgojINCz0LDRgNC90LUg0LLQuNCy0LXQtNC10L3QvdGPINC60LLQsNC00YDQsNGC0L7QvApmb3Igcm93IGluIG1hdHJpeDoKICAgIHByaW50KCIgIi5qb2luKGYie3g6M30iIGZvciB4IGluIHJvdykpCg==