Квадратность задачи можно развернуть в чисто векторное описание.
Пусть для квадрата 

 нужно найти вектор 

 длиной 

. Тогда искомая сумма зависит от двух статичных таблиц GCD и DIST размером 

. Статичных в том смысле, что их не нужно пересчитывать в процессе вычислений и достаточно посчитать в начале.
(код GCD и DIST)
Код:
n= 3; N= n^2;
GCD= matrix(N, N, i, j, gcd(i, j));
DIST= matrix(N, N);
for(a=1, N,
 ia= a\n; ja= a%n; if(ja, ia++, ja= n);
 for(b=1, N,
  ib= b\n; jb= b%n; if(jb, ib++, jb= n);
  if(ib > ia || (ia == ib && jb > ja), DIST[a,b]= (ia - ib)^2 + (ja - jb)^2, DIST[a,b]= 0)
));
(GCD и DIST для n=3)
Код:
? GCD
%4 =
[1 1 1 1 1 1 1 1 1]
[1 2 1 2 1 2 1 2 1]
[1 1 3 1 1 3 1 1 3]
[1 2 1 4 1 2 1 4 1]
[1 1 1 1 5 1 1 1 1]
[1 2 3 2 1 6 1 2 3]
[1 1 1 1 1 1 7 1 1]
[1 2 1 4 1 2 1 8 1]
[1 1 3 1 1 3 1 1 9]
? DIST
%5 =
[0 1 4 1 2 5 4 5 8]
[0 0 1 2 1 2 5 4 5]
[0 0 0 5 2 1 8 5 4]
[0 0 0 0 1 4 1 2 5]
[0 0 0 0 0 1 2 1 2]
[0 0 0 0 0 0 5 2 1]
[0 0 0 0 0 0 0 1 4]
[0 0 0 0 0 0 0 0 1]
[0 0 0 0 0 0 0 0 0]
(GCD и DIST для n=4)
Код:
? GCD
%14 =
[1 1 1 1 1 1 1 1 1  1  1  1  1  1  1  1]
[1 2 1 2 1 2 1 2 1  2  1  2  1  2  1  2]
[1 1 3 1 1 3 1 1 3  1  1  3  1  1  3  1]
[1 2 1 4 1 2 1 4 1  2  1  4  1  2  1  4]
[1 1 1 1 5 1 1 1 1  5  1  1  1  1  5  1]
[1 2 3 2 1 6 1 2 3  2  1  6  1  2  3  2]
[1 1 1 1 1 1 7 1 1  1  1  1  1  7  1  1]
[1 2 1 4 1 2 1 8 1  2  1  4  1  2  1  8]
[1 1 3 1 1 3 1 1 9  1  1  3  1  1  3  1]
[1 2 1 2 5 2 1 2 1 10  1  2  1  2  5  2]
[1 1 1 1 1 1 1 1 1  1 11  1  1  1  1  1]
[1 2 3 4 1 6 1 4 3  2  1 12  1  2  3  4]
[1 1 1 1 1 1 1 1 1  1  1  1 13  1  1  1]
[1 2 1 2 1 2 7 2 1  2  1  2  1 14  1  2]
[1 1 3 1 5 3 1 1 3  5  1  3  1  1 15  1]
[1 2 1 4 1 2 1 8 1  2  1  4  1  2  1 16]
? DIST
%15 =
[0 1 4 9  1 2 5 10  4 5 8 13  9 10 13 18]
[0 0 1 4  2 1 2  5  5 4 5  8 10  9 10 13]
[0 0 0 1  5 2 1  2  8 5 4  5 13 10  9 10]
[0 0 0 0 10 5 2  1 13 8 5  4 18 13 10  9]
[0 0 0 0  0 1 4  9  1 2 5 10  4  5  8 13]
[0 0 0 0  0 0 1  4  2 1 2  5  5  4  5  8]
[0 0 0 0  0 0 0  1  5 2 1  2  8  5  4  5]
[0 0 0 0  0 0 0  0 10 5 2  1 13  8  5  4]
[0 0 0 0  0 0 0  0  0 1 4  9  1  2  5 10]
[0 0 0 0  0 0 0  0  0 0 1  4  2  1  2  5]
[0 0 0 0  0 0 0  0  0 0 0  1  5  2  1  2]
[0 0 0 0  0 0 0  0  0 0 0  0 10  5  2  1]
[0 0 0 0  0 0 0  0  0 0 0  0  0  1  4  9]
[0 0 0 0  0 0 0  0  0 0 0  0  0  0  1  4]
[0 0 0 0  0 0 0  0  0 0 0  0  0  0  0  1]
[0 0 0 0  0 0 0  0  0 0 0  0  0  0  0  0]
При этом считать сумму нужно по ненулевому треугольнику матрицы DIST. Количество элементов суммы легко определить для каждого 

(кол-во членов суммы)
Код:
? n=3;N=n^2;sum(i=1,N-1,i)
%17 = 36
? n=4;N=n^2;sum(i=1,N-1,i)
%18 = 120
? n=5;N=n^2;sum(i=1,N-1,i)
%19 = 300
? n=6;N=n^2;sum(i=1,N-1,i)
%20 = 630
Количество единиц в треугольнике DIST зададут константу (только когда ищем максимум суммы) в искомой сумме, и оно равно (возможно, не уверен) 

. Количество единиц в соответствующем треугольнике матрицы GCD больше, поэтому смотреть нужно на единицы матрицы DIST.
Сама же сумма считается как
Код:
sum(i=1,N-1,sum(j=i+1,N,GCD[X[i],X[j]]*DIST[i,j]))
Это включая единицы, т.е. без вычета константы. Можно попытаться посчитать её без единиц с вычетом константы, что несколько сократит вычисления.
Итог. Задача выглядит NP-трудной. Ни веса чисел, ни разбиение квадрата на подквадраты не помогают. Получающиеся оптимумы не соответсвуют действительным. Пытаюсь в "векторной" картинке разглядеть хоть какую-то эвристику, в "квадратной" картине всё выглядит ещё сложнее.