-- 401 n = io.read("*n") for r = 1, n, 1 do for c = 1, n, 1 do v = 0 v = n * (r - 1) + c if(r <= c and c <= n - r) then -- Top v = (r - 1) * 4 * (n - r + 1) + c + 1 - r elseif(r < c) then -- Right v = (n - c) * 4 * c + 3 * c - 2 * n - 1 + r elseif(n + 1 < c + r) then -- Bottom v = (n - r) * 4 * r + 5 * r - 2 * n - c - 1 else -- Left v = 4 * c * (n - c) - r + c + 1 end io.write(string.format("%03d", v)) if(c ~= n) then io.write(" ") end end io.write("\n") end