Магическим квадратом (традиционным), как известно, называется расположение чисел от 1 до n^2 в клеточках квадрата n*n так, чтобы сумма чисел во всех столбцах, строчках и диагоналях была одинаковой. Для квадрата 3*3 она равна 15,  квадрата 4*4 -34, а квадрата 5*5 - 65. В нетрадиционных магических квадратах могут быть использованы другие числовые множества кроме последовательных натуральных чисел, например простые числа. Если к числам в каждой клетке традиционного магического квадрата прибавить(или отнять) одно и тоже число или умножить эти числа на одно и тоже число, а также произвести оба этих действия , мы получим  магический квадрат из последовательных членов некоторой арифметической прогрессии. Такие квадраты также можно отнести к традиционным. Например из традиционного квадрата 

                      2 9 4    получаем    5 26 11    умножив каждое число на 3 и вычтя 1.

                     7 5  3                      20 14 8 

                     6 1 8                       17  2 23

Магические квадраты из домино вообще название достаточно условное,т.к  в них числа повторяются и в строчкахи в столбцах. Но тем не менее о них - после традиционных квадратов 4*4.Приведены примеры квадратов из домино 4*4 (т.е.из 8-и доминошек) с суммами от 5 до19 и программа их получения.

Рассчитать квадрат 3*3 можно достаточно просто.В приведённой ниже программе сначала получаются строчки, а затем проверяются столбцы и диагонали.За секунду получаем 8 квадратов, которые являются связанными симметриями квадрата,(отражение от 4-х осей симметрии и повороты на 90,180 и 270 градусов)т.е. базовый квадрат всего один.


CLS
 OPEN "mag3" FOR OUTPUT AS #1
FOR a1 = 1 TO 9
FOR a2 = 1 TO 9
IF a2 = a1 THEN 1
 a3 = 15 - a1 - a2
IF a3 = a2 OR a3 = a1 THEN 1
 IF a3 <= 0 THEN 1
FOR a4 = 1 TO 9
IF a4 = a3 OR a4 = a2 OR a4 = a1 THEN 3
FOR a5 = 1 TO 9
IF a5 = a4 OR a5 = a3 OR a5 = a2 OR a5 = a1 THEN 4
a6 = 15 - a4 - a5
IF a6 = a5 OR a6 = a4 OR a6 = a3 OR a6 = a2 OR a6 = a1 THEN 4
IF a6 <= 0 THEN 4
 FOR a7 = 1 TO 9
 IF a7 = a6 OR a7 = a5 OR a7 = a4 OR a7 = a3 OR a7 = a2 OR a7 = a1 THEN 6
 FOR a8 = 1 TO 9
 IF a8 = a7 OR a8 = a6 OR a8 = a5 OR a8 = a4 OR a8 = a3 OR a8 = a2 OR a8 = a1  THEN 7
 a9 = 15 - a7 - a8
IF a9 = a8 OR a9 = a7 OR a9 = a6 OR a9 = a5 OR a9 = a4 OR a9 = a3 OR a9 = a2 OR_
a9 = a1 THEN 7
 IF a9 <= 0 THEN 7
   IF a1 + a4 + a7 <> 15 THEN 7
   IF a2 + a5 + a8 <> 15 THEN 7
   IF a3 + a6 + a9 <> 15 THEN 7
   IF a1 + a5 + a9 <> 15 THEN 7
   IF a3 + a5 + a7 <> 15 THEN 7
   PRINT a1; a2; a3
   PRINT a4; a5; a6
   PRINT a7; a8; a9
   PRINT "         "
   PRINT #1, a1; a2; a3
   PRINT #1, a4; a5; a6
   PRINT #1, a7; a8; a9
   PRINT #1, "         "

7 NEXT a8
6 NEXT a7
4 NEXT a5
3 NEXT a4
1 NEXT a2
  NEXT a1

Вот результат работы программы:

 2  7  6
 9  5  1        базовый квадрат
 4  3  8
        
 2  9  4
 7  5  3         отражение от диагонали  \
 6  1  8
        
 4  3  8
 9  5  1        отражение от горизонтальной оси
 2  7  6
        
 4  9  2
 3  5  7        поворот на 90 гр.по ч.с.
 8  1  6
        
 6  1  8
 7  5  3      поворот на 270 гр.по ч.с.
 2  9  4
        
 6  7  2
 1  5  9    отражение от вертикальной оси
 8  3  4
        
 8  1  6
 3  5  7    отражение от диагонали /
 4  9  2
        
 8  3  4
 1  5  9     поворот на 180 гр.
 6  7  2
        
Для квадрата 4*4 результатов работы аналогичной программы мы не дождёмся.Нужно проверять все условия в процессе генерации строк,что делает программу достаточно длинной. Сократить длину программы,может быть за счёт некоторой потери скорости,можно используя особенность квадрата 4*4.Если есть строка,столбец и диагональ,выходящие из угловой клетки,достаточно задать число в одной свободной клетке,чтобы вычислить числа во всех оставшихся.

   CLS
 OPEN "mag4" FOR OUTPUT AS #1
 DIM n(16)
 FOR a1 = 1 TO 16
FOR a2 = 1 TO 16
IF a2 = a1 THEN 1
FOR a3 = 1 TO 16
IF a3 = a2 OR a3 = a1 THEN 2
 a4 = 34 - a1 - a2 - a3
 IF a4 <= 0 OR a4 > 16 THEN 2
IF a4 = a3 OR a4 = a2 OR a4 = a1 THEN 2

 x(1) = a1: y(1) = a2: z(1) = a3: w(1) = a4

FOR a5 = 1 TO 16
IF a5 = a4 OR a5 = a3 OR a5 = a2 OR a5 = a1 THEN 4

FOR a6 = 1 TO 16
 IF a6 = a5 OR a6 = a4 OR a6 = a3 OR a6 = a2 OR a6 = a1 THEN 5
  a7 = 34 - a1 - a5 - a6
  IF a7 <= 0 OR a7 > 16 THEN 5
 IF a7 = a6 OR a7 = a5 OR a7 = a4 OR a7 = a3 OR a7 = a2 OR a7 = a1 THEN 5
 
   x(2) = a5: x(3) = a6: x(4) = a7
 
 FOR a8 = 1 TO 16
 IF a8 = a7 OR a8 = a6 OR a8 = a5 OR a8 = a4 OR a8 = a3 OR a8 = a2 OR a8 = a1 THEN 6
 FOR a9 = 1 TO 16
IF a9 = a8 OR a9 = a7 OR a9 = a6 OR a9 = a5 OR a9 = a4 OR a9 = a3 OR a9 = a2 OR a9 = a1 THEN 7
 a10 = 34 - a1 - a8 - a9
 IF a10 <= 0 OR a10 > 16 THEN 7
 IF a10 = a9 OR a10 = a8 OR a10 = a7 OR a10 = a6 OR a10 = a5 OR a10 = a4 OR a10 = a3 OR a10 = a2 OR a10 = a1 THEN 7
 y(2) = a8: z(3) = a9: w(4) = a10
  w(2) = 0
21  w(2) = w(2) + 1
IF w(2) > 16 THEN 7
  w(3) = 34 - w(1) - w(2) - w(4)
  IF w(3) <= 0 OR w(3) > 16 THEN 21
    z(2) = 34 - x(2) - y(2) - w(2)
  IF z(2) <= 0 OR z(2) > 16 THEN 21

  y(3) = 34 - x(3) - z(3) - w(3)
  IF y(3) <= 0 OR y(3) > 16 THEN 21

  y(4) = 34 - y(1) - y(2) - y(3)
  IF y(4) <= 0 OR y(4) > 16 THEN 21
  z(4) = 34 - z(1) - z(2) - z(3)
  IF z(4) <= 0 OR z(4) > 16 THEN 21
   IF z(1) + z(2) + z(3) + z(4) <> 34 THEN 21
   IF x(4) + y(3) + z(2) + w(1) <> 34 THEN 21
 n(1) = x(1): n(2) = y(1): n(3) = z(1): n(4) = w(1)
 n(5) = x(2): n(6) = y(2): n(7) = z(2)
n(8) = w(2): n(9) = x(3): n(10) = y(3): n(11) = z(3)
n(12) = w(3): n(13) = x(4): n(14) = y(4): n(15) = z(4): n(16) = w(4)
FOR i = 1 TO 16
 FOR j = 1 TO 16
  h = n(i) - n(j)
  IF h = 0 AND i <> j THEN 21
  NEXT
  NEXT
    r = r + 1
   
  PRINT r
  PRINT x(1); y(1); z(1); w(1)
  PRINT x(2); y(2); z(2); w(2)
  PRINT x(3); y(3); z(3); w(3)
  PRINT x(4); y(4); z(4); w(4)
 PRINT "  "
  PRINT #1, r
  PRINT #1, x(1); y(1); z(1); w(1)
  PRINT #1, x(2); y(2); z(2); w(2)
  PRINT #1, x(3); y(3); z(3); w(3)
  PRINT #1, x(4); y(4); z(4); w(4)
  PRINT #1, "  "

7 NEXT a9
6 NEXT a8
5 NEXT a6
4 NEXT a5
2 NEXT a3
1 NEXT a2
 NEXT a1
 
      Мы получаем все 7040 магических квадратов 4*4.Конечно, базовая группа состоит только из 880.
Вот фрагменты результатов работы программы:

           1
 1      2     15    16
 12   14      3     5
 13     7     10    4
 8     11      6     9 
 
 2
 1    2    15   16
 13  14   3    4
 12   7   10    5
 8    11   6    9
 
 3
 1     2  16  15
 13  14  4   3
 12   7   9   6
 8    11  5   10
 
 4
 1    3  14  16
 10  13  4   7
 15   6  11  2
 8    12  5   9
 
 5
 1    3  14  16
 12  13  4  5
 15   8   9   2
 6    10  7  11
 
 6
 1    3  14  16
 15  13  4  2
 10  6  11  7
 8  12   5   9
 
 7
 1    3  14  16
 15  13  4  2
 12  8    9   5
  6   10  7  11
 
 8
 1   3  16  14
 8  15   2    9
 13  6  11  4
 12  10  5  7
 
 9
 1     3  16  14
 12  15   2    5
 13  10   7    4
 8     6    9  11
 
 10
 1     3   16  14
 13  15   2   4
  8     6  11  9
 12  10   5   7
- - - - - - - -

 6715
 16  3   2   13
 5   10  11  8
 9    6    7   12     : Дюрер
 4   15  14  1
 --------------
7031
 16  14  1  3
 4    2  15  13
 9   11  6   8
 5    7  12  10
 
 7032
 16  14  1  3
 5     2  15  12
 4     7  10  13
 9    11  8  6
 
 7033
 16  14  1  3
 9     2  15  8
 4    11  6  13
 5    7  12  10
 
 7034
 16  14  3  1
 2    4  13  15
 5    9  8  12
 11  7  10  6
 
 7035
 16  14  3  1
 2     4  13  15
 7    11  6  10
 9     5  12  8
 
 7036
 16  14  3  1
 5    4  13  12
 2    9   8  15
 11  7  10  6
 

 7037
 16  14  3  1
 7    4  13  10
 2   11  6  15
 9    5  12   8
 
 7038
 16  15  1  2
 4    3  13  14
 5    10  8  11
 9     6  12  7
 
 7039
 16  15  2  1
 4     3  14  13
 5    10  7  12
 9     6  11   8
 
 7040
 16  15  2  1
 5     3  14  12
 4   10  7    13
 9    6  11   8
 
Если перед выводом результатов(т.е.перед оператором r = r+1)вставить
 следующий фрагмент:

  IF x(1) + y(4) + z(3) + w(2) <> 34 THEN 7
  IF x(2) + y(1) + z(4) + w(3) <> 34 THEN 7
  IF x(3) + y(2) + z(1) + w(4) <> 34 THEN 7
  IF x(4) + y(1) + z(2) + w(3) <> 34 THEN 7
 
  IF w(1) + x(2) + y(3) + z(4) <> 34 THEN 7
  IF z(1) + w(2) + y(4) + x(3) <> 34 THEN 7
  IF y(1) + z(2) + w(3) + x(4) <> 34 THEN 7
  IF x(3) + y(2) + z(1) + w(4) <> 34 THEN 7

- мы выделим пандиагональные(или дьявольские)квадраты.
Их число - 384.
 1
 1    8  10  15
 12  13  3  6
 7    2  16  9
 14  11  5  4
 
 2
 1    8  10  15
 14  11  5  4
 7    2  16  9
 12  13  3  6
 
 3
 1    8  11  14
 12  13  2  7
 6    3  16  9
 15  10  5  4
 
 4
 1    8  11  14
 15  10  5  4
 6    3  16  9
 12  13  2  7
 
 5
 1    8  13  12
 14  11  2   7
 4    5  16   9
 15  10  3   6
 
 6
 1   8  13  12
 15  10  3  6
  4   5  16  9
 14  11  2  7
 
 7
 1  12  6  15
 8  13  3  10
 11  2  16 5
 14  7  9   4
 
 8
 1  12  6  15
 14  7  9   4
 11  2  16 5
 8  13  3  10
 
 9
 1  12  7  14
 8  13  2  11
 10  3  16 5
 15  6  9   4
 
 10
 1  12  7  14
 15  6  9   4
 10  3  16 5
 8  13  2  11
 
--------------
 375
 16  5  10  3
 2  11  8  13
 7  14  1  12
 9    4  15  6
 
 376
 16  5  10  3
 9    4  15  6
 7  14  1  12
 2  11  8  13
 
 377
 16  5  11  2
 3  10  8  13
 6  15  1  12
 9    4  14  7
 
 378
 16  5  11  2
 9    4  14  7
 6  15  1  12
 3  10  8  13
 
 379
 16  9  4  5
 2    7  14  11
 13  12  1  8
 3    6  15  10
 
 380
 16  9  4  5
 3   6  15  10
 13 12  1  8
 2   7  14  11
 
 381
 16  9  6  3
 2   7  12  13
 11 14  1  8
 5   4  15  10
 
 382
 16  9  6  3
 5   4  15  10
 11  14  1  8
 2   7  12  13
 
 383
 16  9  7  2
 3    6  12  13
 10  15  1  8
 5    4  14  11
 
 384
 16  9  7  2
 5    4  14  11
 10  15  1  8
 3    6  12  13
Базовая группа квадратов не связанных симметриями квадрата имеет размер 384:8=48

 
 Если же фрагмент будет таким:

  IF x(1) + w(4) <> 17 THEN 7
  IF x(2) + w(3) <> 17 THEN 7
  IF x(3) + w(2) <> 17 THEN 7
  IF x(4) + w(1) <> 17 THEN 7
  IF y(1) + z(4) <> 17 THEN 7
  IF y(2) + z(3) <> 17 THEN 7
  IF y(3) + z(2) <> 17 THEN 7
  IF y(4) + z(1) <> 17 THEN 7

 то мы выделим ассоциативные (симметричные) квадраты.
Их также будет 384,однако множества симметричных и
пандиагональных квадратов не пересекаются для квадратов 4*4.
 
  1
  1   8  12  13
 14  11   7   2
 15  10   6   3
    4   5   9  16
 
 2
  1    8  12  13
 15  10   6    3
 14  11   7    2
   4    5   9  16
 
 3
  1   8  14  11
 12  13   7   2
 15  10   4   5
  6   3   9  16
 
 4
 1    8  14  11
 15  10   4   5
 12  13   7   2
   6    3   9  16
 
 5
 1    8  15  10
 12  13   6   3
 14  11   4   5
  7   2   9  16
 -------------------

  380
 16    9    2   7
   5    4  11  14
   3    6  13  12
 10  15    8    1
 
 381
 16  9  3  6
 2  7  13  12
 5  4  10  15
 11  14  8  1
 
 382
16  9   3    6
 5   4  10  15
 2   7  13  12
11 14   8    1
 
 383
 16  9  5  4
 2  7  11  14
 3  6  10  15
 13  12  8  1
 
 384
 16  9  5    4
 3   6  10  15
 2   7  11  14
13  12  8    1
 

Магические квадраты из домино 4*4 можно находить с помощью программы аналогичной нахождению традиционных магических квадратов. Надо только исключить условие что числа должны быть разные, а сами числа здесь изменяются в диапазоне от 0 до 6. Есть ещё условие что доминошки не должны повторятся, но его автоматизировать достаточно сложно.Так что выбирать из полученных квадратов те, где доминошки не повторяются надо "вручную”,т.е. самим.Но если не стоит задача найти все квадраты с требуемой суммой,то отдельные квадраты можно найти быстро.Например для квадратов с суммой 14 всего квадратов получается 19507, но уже в первой десятке в 5 квадратах доминошки не повторяются.Ниже приводится эта десятка, искомые квадраты обозначены крестиком.

1

 0  2  6  6

 2  6  2  4

 6  0  6  2

 6  6  0  2

 

 2

 0  2  6  6

 3  6  2  3

 5  0  6  3

 6  6  0  2

 

 3

 0  2  6  6 доминошки : три-пуста,пять-два,шесть-два,шесть-четыре

 3  5  2  4 +

 6  1  6  1 доминошки:шесть-пять,шесть-один,шесть-пуста,три-один

 5  6  0  3

 

 4

 0  2  6  6

 3  6  3  2 

 6  0  5  3

 5  6  0  3

 

 5

 0  2  6  6

 4  6  2  2

 4  0  6  4

 6  6  0  2

 

 6

 0  2  6  6

 4  5  2  3

 5  1  6  2 +

 5  6  0  3

 

 7

 0  2  6  6

 4  6  3  1

 5  0  5  4 +

 5  6  0  3

 

 8

 0  2  6  6

 4  4  2  4

 6  2  6  0

 4  6  0  4

 

9

 0  2  6  6

 4  5  3  2 +

 6  1  5  2

 4  6  0  4

 

 10

 0  2  6  6

 4  6  3  1 +

 6  1  4  3

 4  5  1  4

 

В опубликованной ниже программе нужно ввести желаемую постоянную магического квадрата и из тысяч полученных квадратов выбрать нужные,где доминошки не повторяются.Хотя занятие это по-моему пустое.

 Вот по одному магическому квадрату с другими суммами.
 Доминошки считаем расположенными вертикально.
 
 summa=5
 0  0  2  3
 0  3  1  1
 4  0  1  0
 1  2  1  1

 summa=6
 0  0  1  5
 3  2  0  1
 2  0  4  0
 1  4  1  0

 summa=7
 0  0  1  6
 2  4  0  1
 4  0  3  0
 1  3  3  0

 summa=8
 0  0  2  6
 1  5  0  2
 5  0  3  0
 2  3  3  0

 summa=9
 0  0  3  6
 1  5  0  3
 5  0  4  0
 3  4  2  0

 summa=10
 0  0  4  6
 1  6  1  2
 6  0  3  1
 3  4  2  1

 s=11
 0  0  5  6
 1  6  1  3
 6  0  4  1
 4  5  1  1
 
 s=12
 0  0  6  6
 3  6  2  1
 6  1  3  2
 3  5  1  3

 s=13
 0  1  6  6
 2  6  2  3
 6  0  5  2
 5  6  0  2

 
 s=15
 0  3  6  6
 4  6  4  1
 6  0  5  4
 5  6  0  4

 s=16
 0  4  6  6
 5  5  4  2
 6  1  6  3
 5  6  0  5

 s=17
 0  6  5  6
 6  6  4  1
 5  1  6  5
 6  4  2  5

 s=18
 2  5  5  6
 4  6  5  3
 6  1  6  5
 6  6  2  4

 s=19
 3  5  5  6
 4  6  5  4
 6  2  6  5
 6  6  3  4
Легко прикинуть,что суммами от 5 до 19 ограничиваются магические квадраты из домино 4*4.

CLS

INPUT " Summa"; s

OPEN "misd" FOR OUTPUT AS #1

FOR a1 = 0 TO 6

 FOR a2 = 0 TO 6

 FOR a3 = 0 TO 6

 a4 = s - a1 - a2 - a3

 IF a4 < 0 OR a4 > 6 THEN 3

FOR b1 = 0 TO 6

 FOR c1 = 0 TO 6

 d1 = s - a1 - b1 - c1

 IF d1 < 0 OR d1 > 6 THEN 2

FOR b2 = 0 TO 6

 FOR c3 = 0 TO 6

 d4 = s - a1 - b2 - c3

 IF d4 < 0 OR d4 > 6 THEN 1

 b4 = 0

0 b4 = b4 + 1

 IF b4 = 7 THEN 1

 c4 = s - a4 - b4 - d4

 IF c4 < 0 OR c4 > 6 THEN 0

 b3 = s - b1 - b2 - b4

 IF b3 < 0 OR b3 > 6 THEN 0

 c2 = s - c1 - c3 - c4

 IF c2 < 0 OR c2 > 6 THEN 0

 d2 = s - a2 - b2 - c2

 IF d2 < 0 OR d2 > 6 THEN 0

 d3 = s - a3 - b3 - c3

 IF d3 < 0 OR d3 > 7 THEN 0

 IF a1 + b2 + c3 + d4 <> s THEN 0

 IF d1 + c2 + b3 + a4 <> s THEN 0

 IF d1 + d2 + d3 + d4 <> s THEN 0

 r = r + 1

 PRINT r

 PRINT a1; a2; a3; a4

 PRINT b1; b2; b3; b4

 PRINT c1; c2; c3; c4

 PRINT d1; d2; d3; d4

 PRINT #1, r

 PRINT #1, a1; a2; a3; a4

 PRINT #1, b1; b2; b3; b4

 PRINT #1, c1; c2; c3; c4

 PRINT #1, d1; d2; d3; d

1 NEXT c3

 NEXT b2

2 NEXT c1

 NEXT b1

3 NEXT a3

 NEXT a2

 NEXT a1

 END

 
    Все магические квадраты 5*5 на персональном компьютере получить по-видимому невозможно.У Гарднера написано,что их число рассчитано,но другие источники это не подтверждают.Однако мы можем найти семейства квадратов 5*5 с определёнными свойствами.Ниже представлена программа получающая симметричные(ассоциативные) квадраты,т.е. такие квадраты у которых сумма всех пар чисел в клетках симметричных относительно центральной клетки равна 26.Этих пар 12. 12*26=312.Значит в центральной клетке должно быть число 325 -312=13.


 CLS
 DEFINT A-Z
  OPEN "Mkid" FOR OUTPUT AS #1
  DIM n(25)
 z(3) = 13
 FOR a1 = 1 TO 25
   IF a1 = 13 THEN 1
 FOR a2 = 1 TO 25
IF a2 = a1 THEN 2
IF a2 = 13 THEN 2

FOR a3 = 1 TO 25
 IF a3 = a2 OR a3 = a1 THEN 3
 IF a3 = 13 THEN 3

 FOR a4 = 1 TO 25
 IF a4 = a3 OR a4 = a2 OR a4 = a1 THEN 4
 IF a4 = 13 THEN 4

 a5 = 65 - a1 - a2 - a3 - a4
 IF a5 = a4 OR a5 = a3 OR a5 = a2 OR a5 = a1 THEN 4
IF a5 < 1 OR a5 > 25 THEN 4
IF a5 = 13 THEN 4
  x(1) = a1: x(2) = a2: x(3) = a3: x(4) = a4: x(5) = a5

FOR a6 = 1 TO 25
IF a6 = a1 OR a6 = a2 OR a6 = a3 OR a6 = a4 OR a6 = a5 THEN 6
IF a6 = 13 THEN 6

FOR a7 = 1 TO 25
IF a7 = a6 OR a7 = a5 OR a7 = a4 OR a7 = a3 OR a7 = a2 OR a7 = a1 THEN 7
IF a7 = 13 THEN 7

FOR a8 = 1 TO 25
IF a8 = a7 OR a8 = a6 OR a8 = a5 OR a8 = a4 OR a8 = a3 OR a8 = a2 OR a8 = a1 THEN 8
   IF a8 = 13 THEN 8
y(1) = a6: z(1) = a7: u(1) = a8

a9 = 26 - a5
IF x(1) + y(1) + z(1) + u(1) + a9 <> 65 THEN 8
IF a9 = a8 OR a9 = a7 OR a9 = a6 OR a9 = a5 OR a9 = a4 OR a9 = a3 OR a9 = a2 OR a9 = a1 THEN 8
IF a9 = 13 THEN 8
w(1) = a9

a10 = 26 - x(1)
 IF a10 < 1 OR a10 > 25 THEN 8
 IF a10 = a9 OR a10 = a8 OR a10 = a7 OR a10 = a6 OR a10 = a5 OR a10 = a4 THEN 8
 IF a10 = a3 OR a10 = a2 OR a10 = a1 THEN 8
 IF a10 = 13 THEN 8
 w(5) = a10
  
 a11 = 26 - x(2)
 IF a11 = a10 OR a11 = a9 OR a11 = a8 OR a11 = a7 OR a11 = a6 OR a11 = a5 OR a11 = a4 THEN 8
 IF a11 = a3 OR a11 = a2 OR a11 = a1 THEN 8
  IF a11 = 13 THEN 8
  w(4) = a11
  
 a12 = 26 - x(3)
 IF a12 = a11 OR a12 = a10 OR a12 = a9 OR a12 = a8 OR a12 = a7 OR a12 = a6 THEN 8
 IF a12 = a5 OR a12 = a4 OR a12 = a3 OR a12 = a2 OR a12 = a1 THEN 8
   IF a12 = 13 THEN 8
  w(3) = a12

  a13 = 26 - x(4)
 IF a13 = a12 OR a13 = a11 OR a13 = a10 OR a13 = a9 OR a13 = a8 OR a13 = a7 OR a13 = a6 THEN 8
 IF a13 = a5 OR a13 = a4 OR a13 = a3 OR a13 = a2 OR a13 = a1 THEN 8

 IF a13 = 13 THEN 8
  w(2) = a13
 
 a14 = 26 - y(1)
 
 IF a14 = a13 OR a14 = a12 OR a14 = a11 OR a14 = a10 OR a14 = a9 OR a14 = a8 OR a14 = a7 OR a14 = a6 THEN 8
 IF a14 = a5 OR a14 = a4 OR a14 = a3 OR a14 = a2 OR a14 = a1 THEN 8
  IF a14 = 13 THEN 8
 u(5) = a14

  a15 = 26 - z(1)
  IF a15 < 1 OR a15 > 25 THEN 8
 IF a15 = a14 OR a15 = a13 OR a15 = a12 OR a15 = a11 OR a15 = a10 OR a15 = a9 OR a15 = a8 OR a15 = a7 OR a15 = a6 THEN 8
 IF a15 = a5 OR a15 = a4 OR a15 = a3 OR a15 = a2 OR a15 = a1 THEN 8
 IF a15 = 13 THEN 8
   z(5) = a15

 a16 = 26 - u(1)
 IF a16 = a15 OR a16 = a14 OR a16 = a13 OR a16 = a12 OR a16 = a11 OR a16 = a10 OR a16 = a9 OR a16 = a8 OR a16 = a7 OR a16 = a6 THEN 8
 IF a16 = a5 OR a16 = a4 OR a16 = a3 OR a16 = a2 OR a16 = a1 THEN 8
 IF a16 = 13 THEN 8
 y(5) = a16

IF x(5) + y(5) + z(5) + u(5) + w(5) <> 65 THEN 8

IF w(1) + w(2) + w(3) + w(4) + w(5) <> 65 THEN 8
FOR a17 = 1 TO 25
IF a17 = x(1) OR a17 = x(2) OR a17 = x(3) OR a17 = x(4) OR a17 = x(5) THEN 17
IF a17 = y(1) OR a17 = z(1) OR a17 = u(1) OR a17 = w(1) THEN 17
IF a17 = w(2) OR a17 = w(3) OR a17 = w(4) OR a17 = w(5) THEN 17
IF a17 = y(5) OR a17 = z(5) OR a17 = u(5) OR a17 = z(3) THEN 17
y(2) = a17
u(4) = 26 - y(2)
IF u(4) = y(2) OR u(4) = a1 OR u(4) = a2 OR u(4) = a3 OR u(4) = a4 OR u(4) = a5 THEN 17
IF u(4) = a6 OR u(4) = a7 OR u(4) = a8 OR u(4) = a9 THEN 17
IF u(4) = a10 OR u(4) = a11 OR u(4) = a12 OR u(4) = a13 THEN 17
IF u(4) = a14 OR u(4) = a15 OR u(4) = 16 THEN 17

IF x(1) + y(2) + z(3) + u(4) + w(5) <> 65 THEN 17

FOR a18 = 1 TO 25
IF a18 = y(2) OR a18 = x(1) OR a18 = x(2) OR a18 = x(3) OR a18 = x(4) OR a18 = x(5) THEN 18
IF a18 = y(1) OR a18 = z(1) OR a18 = u(1) OR a18 = w(1) THEN 18
IF a18 = w(2) OR a18 = w(3) OR a18 = w(4) OR a18 = w(5) THEN 18
IF a18 = y(5) OR a18 = z(5) OR a18 = u(5) OR a18 = z(3) THEN 18
y(4) = a18
u(2) = 26 - y(4)
IF u(2) = a1 OR u(2) = a2 OR u(2) = a3 OR u(2) = a4 OR u(4) = a5 THEN 18
IF u(2) = a6 OR u(2) = a7 OR u(2) = a8 OR u(2) = a9 OR u(2) = a10 THEN 18
IF u(2) = a11 OR u(2) = a12 OR u(2) = a13 OR u(2) = a14 OR u(2) = a15 THEN 18
IF u(2) = a16 OR u(2) = a17 OR u(2) = a18 OR u(2) = u(4) THEN 18

IF y(1) + y(2) + y(3) + y(4) + y(5) <> 65 THEN 18
IF x(5) + y(4) + z(3) + u(2) + w(1) <> 65 THEN 18

FOR a19 = 1 TO 25
IF a19 = y(4) OR a19 = y(2) OR a19 = x(1) OR a19 = x(2) OR a19 = x(3) OR a19 = x(4) OR a19 = x(5) THEN 19
IF a19 = y(1) OR a19 = z(1) OR a19 = u(1) OR a19 = u(2) OR a19 = w(1) THEN 19
IF a19 = w(2) OR a19 = w(3) OR a19 = w(4) OR a19 = w(5) THEN 19
IF a19 = y(5) OR a19 = z(5) OR a19 = u(5) OR a19 = z(3) THEN 19
y(3) = a19
u(3) = 26 - y(3)
IF u(3) = u(4) OR u(3) = u(2) THEN 19
IF u(3) = a1 OR u(3) = a2 OR u(3) = a3 OR u(3) = a4 OR u(3) = a5 THEN 19
IF u(3) = a6 OR u(3) = a7 OR u(3) = a8 OR u(3) = a9 OR u(3) = a10 THEN 19
IF u(3) = a11 OR u(3) = a12 OR u(3) = a13 OR u(3) = a14 OR u(3) = a15 THEN 19
IF u(3) = a16 OR u(3) = a17 OR u(3) = u18 OR u(3) = a19 THEN 19

IF x(3) + y(3) + z(3) + u(3) + w(3) <> 65 THEN 19

FOR a20 = 1 TO 25
IF a20 = y(3) OR a20 = y(4) OR a20 = y(2) OR a20 = x(1) OR a20 = x(2) OR a20 = x(3) OR a20 = x(4) OR a20 = x(5) THEN 20
IF a20 = y(1) OR a20 = z(1) OR a20 = u(1) OR a20 = w(1) THEN 20
IF a20 = w(2) OR a20 = w(3) OR a20 = w(4) OR a20 = w(5) THEN 20
IF a20 = y(5) OR a20 = z(5) OR a20 = u(5) OR a20 = z(3) THEN 20
z(2) = a20
z(4) = 26 - z(2)
IF z(4) = x(1) OR z(4) = x(2) OR z(4) = x(3) OR z(4) = x(4) OR z(4) = x(5) THEN 20
IF z(4) = y(1) OR z(4) = y(2) OR z(4) = y(3) OR z(4) = y(4) OR z(4) = y(5) THEN 20
IF z(4) = z(1) OR z(4) = z(2) OR z(4) = z(3) OR z(4) = z(5) THEN 20
IF z(1) + z(2) + z(3) + z(4) + z(5) <> 65 THEN 20
IF x(2) + y(2) + z(2) + u(2) + w(2) <> 65 THEN 20
IF x(4) + y(4) + z(4) + u(4) + w(4) <> 65 THEN 20
IF y(1) + y(2) + y(3) + y(4) + y(5) <> 65 THEN 20
IF u(1) + u(2) + u(3) + u(4) + u(5) <> 65 THEN 20

 n(1) = x(1): n(2) = x(2): n(3) = x(3): n(4) = x(4): n(5) = x(5)
 n(6) = y(1): n(7) = y(2): n(8) = y(3): n(9) = y(4): n(10) = y(5)
 n(11) = z(1): n(12) = z(2): n(13) = z(3): n(14) = z(4): n(15) = z(5)
 n(16) = u(1): n(17) = u(2): n(18) = u(3): n(19) = u(4): n(20) = u(5)
 n(21) = w(1): n(22) = w(2): n(23) = w(3): n(24) = w(4): n(25) = w(5)
 FOR i = 1 TO 25
 FOR j = 1 TO 25
 IF n(i) = n(j) AND i < j THEN 20 'дополнительная проверка на всякий случай
 NEXT
 NEXT


i# = i# + 1
PRINT i#
PRINT x(1); y(1); z(1); u(1); w(1)
PRINT x(2); y(2); z(2); u(2); w(2)
PRINT x(3); y(3); z(3); u(3); w(3)
PRINT x(4); y(4); z(4); u(4); w(4)
PRINT x(5); y(5); z(5); u(5); w(5)
PRINT

PRINT #1, i#
PRINT #1, x(1); y(1); z(1); u(1); w(1)
PRINT #1, x(2); y(2); z(2); u(2); w(2)
PRINT #1, x(3); y(3); z(3); u(3); w(3)
PRINT #1, x(4); y(4); z(4); u(4); w(4)
PRINT #1, x(5); y(5); z(5); u(5); w(5)
PRINT #1, "  "
PRINT #1, "  "


20 NEXT a20
19 NEXT a19
18 NEXT a18
17 NEXT a17
8 NEXT a8
7 NEXT a7
6 NEXT a6
4 NEXT a4
3 NEXT a3
2 NEXT a2
1 NEXT a1
 
 END



Всего получается 33816 квадратов. Однако при построении групп симметрии обнаружилось,что большую часть существующих симметричных квадратов программа пропускает. Нужно в программе уменьшить число вычисляемых параметров,но тогда время счёта  может оказаться слишком большим.Впрочем  квадратов получается достаточно много,чтобы считать,что работа проделана не зря.
1
 1   17   20  24  3
 4   19   18  14  10
 21  15  13  11  5
 16  12   8    7   22
 23   2    6    9   25  
 
 2
 1  16  20  23  5
 4  19  14  17  11
 24 18  13  8   2
 15  9  12  7   22
 21  3  6  10   25  
 
 3
 1   14  21  23  6
 4   19  17  15  10
 24  18  13  8   2
 16  11   9  7   22
 20   3   5  12  25  
 
 4
 1  15  24  22  3
 5  19  14  17  10
 20  18  13  8  6
 16  9  12  7  21
 23  4   2  11  25  
 
 5
 1   19  18  24  3
 5   15  16  17  12
 22  20  13  6   4
 14   9  10  11  21
 23   2   8  7   25  
 
 6
 1   14  23   20  7
 5   15  17   18  10
 24  22  13    4   2
 16  8    9   11  21
 19  6    3   12  25  
 
 7
 1  14  23  19  8
 5  16  15  20  9
 24 22  13   4  2
 17  6  11  10  21
 18  7   3  12  25  
 
 8
 1  19  14  23  8
 5  15  16  20  9
 24 22  13  4   2
 17  6  10  11  21
 18  3  12  7   25  
 
 9
 1  17  14  23   10
 5  15  20  18   7
 24  22 13  4    2
 19  8  6   11   21
 16  3  12   9   25  
 
 10
 1  16  14  23  11
 5  17  18  19  6
 24  22 13   4  2
 20  7   8   9  21
 15  3  12  10  25  
 
 ----------------
 33810
 25  4  2  11  23
 21  9  12  7  16
 6  18  13  8  20
 10 19  14  17  5
 3  15  24  22  1  
 
 33811
 25   3  5   12  20
 22  11  9   7  16
  2  18  13  8  24
 10  19  17  15  4
 6  14  21   23  1  
 
 33812
 25  5  3  12  20
 22  9  11  7  16
 2  18  13  8  24
10  19  15  17  4
 6  14  23  21  1  
 
 33813
 25  5  3  12  20
 22  11  7  9  16
 2  18  13  8  24
 10 17  19  15  4
 6  14  23  21  1  
 
 33814
 25  3  10  6  21
 22  7  12  9  15
 2  18  13  8  24
 11 17  14  19  4
 5  20  16  23  1  
 
 33815
 25  5   6   11 18
 22  12  2  10  19
 3   17  13  9  23
 7   16  24  14  4
 8   15  20  21  1  
 
 33816
 25  10  6  5  19
 22  2  12  11 18
 3  17  13  9  23
 8  15  14  24  4
 7  21  20  16  1  
 


Конструктор сайтов - uCoz