Ладно терять уже нечего - выкладываю свою самую лучшую идею! Допустим у нас есть множество

, где

, для всех

. То есть для всех пар чисел в множестве их gcd одинаково (равно

). Обозначим множеством

расположением всех чисел в

(для какого то решения), то есть

.
Утверждение: Числа в

можно оптимально раставить в

за время

, где

.
Для этого можно использовать Венгерский алгоритм решающий задачу о назначениях (
https://ru.wikipedia.org/wiki/%D0%92%D0 ... 1%82%D0%BC). Обозначим

матрицу M, где

это цена поставки числа

на место

. Точнее
![$M_{ab}=\sum_{i \notin S} gcd(a,i)*[(x_b-x_i)^2+(y_b-y_i)^2]$ $M_{ab}=\sum_{i \notin S} gcd(a,i)*[(x_b-x_i)^2+(y_b-y_i)^2]$](https://dxdy-02.korotkov.co.uk/f/1/b/8/1b869b0d804fd256b83ff25e549d971482.png)
. Важно отметить что для подсчёта

нам не надо учитывать как числа в

влияют друг на друга. Это потому что для всех

имеем

и любая перестановка в

будет давать одинаковый результат. Венгерский алгоритм даст лучшее назначение рядов к колонкам в

, то есть оптимальную растановку чисел в

на места

.
Теперь как находить

? Есть много вариантов. Например

, где

простое число (или 1),

и

положительные константы. Для 6х6 и

получаем такие разные

:
1 2 3 5 7 11 13 17 19 23 29 31
2 4 6 10 14 22 26 34
3 6 9 15 21 33
4 8 12 20 28
5 10 15 25 35
6 12 18 30
7 14 21 35
8 16 24
9 18 27
10 20 30
11 22 33
12 24 36
А вот результат для

:
1 4 9 25
2 8 18
3 12 27
4 16 36
5 20
6 24
7 28
8 32
9 36
А также можно объеденить эти

и получить более длиные, например:
1 4 9 25 7 11 13 17 19 23 29 31
2 8 18 10 14 22 26 34
3 12 27 15 21 33
4 16 36 20 28
5 20 15 25 35
6 24 18 30
7 28 21 35
8 32 24
9 36 27