
In row 1, let A be the sum of the three cells labelled
a, and B the sum of the three
cells labelled b.
If the square is magic, V zigzagA3:
. the sum of aaa in each row and column is A
. the sum of bbb in each row and column is B
. A + B = Σ,(magic constant)

There are 33,550,848 order 6 knight move magic squares. Here is a small sample.

These distribution charts are based on squares of numbers 1 .. 36.

The squares were made with program Order6ZigZagA3. Total run time was 14½ hours.
Make 3x6 rectangles:
For 6x6 squares with pattern:
a b a b a b
b a b a b a
a b a b a b
b a b a b a
a b a b a b
b a b a b a
where
the sum of a cells in each row and in each column is the same, (A), and
the sum of b cells in each row and in each column is the same, (B = Σ-A):
Make all 3x6 rectangles of the values 0 .. 35, corresponding to the
a's and/or b's of the 6x6 square:
x0 x1 x2
x3 x4 x5
x6 x7 x8
x9 x10 x11
x12 x13 x14
x15 x16 x17
where each row has the same sum, and alternating column values have this sum,
e.g., x0+x6+x12 = x3+x9+x15 = x0+x1+x2.
Check the 18 values not included in the rectangle to determine if they can make
any similar rectangle with sum B = Σ-A.
This step is crucial, reducing the second phase of the algorithm
from many years of computation to only 1½ hours.
If x17 > x0 and \diagonal x0+x3+x7+x10+x14+x17 = Σ, save in file AA.
If x15 > x2 and /diagonal x2+x5+x7+x10+x12+x15 = Σ, save in file BA.
For each file, write a 64-bit vector representing the values in the rectangle.
For A files, write x0, x1, x3, x4, x6, x7, x9, x10.
For B files, write x1, x2, x4, x5, x7, x8, x10, x11.
The remaining values can be computed.
For efficient I/O write the bit vector and 8 1-byte values as 2 64-bit hexadecimals.
Combine the AA and BB rectangles:
For each rectangle in each AA file, for each rectangle in its corresponding BB file, if x2 > x0 and the intersection of the bit vectors is empty, make the square.

The numbers of squares made by these checks matched the final results. Here x0 and A sum refer to number range 1 .. 36.
All squares were made for a few big x0 values by a backtracking algorithm, (optimized for the special symmetry):
x0 squares time
---- ------- ----------
26 38,400 816:45:36
27 25,344 446:20:51
28 6,912 251:11:32
29 3,072 132:04:57
30 0 62:22:18
31 0 24:55:32
32 0 7:53:58
33 0 1:30:14
Before the "crucial" step was added to phase I, all squares were made for a few small A AA file, BB file combinations:
A squares time
--- --------- ----------
33 71,424 0:00:05
34 20,736 0:00:21
35 20,736 0:01:06
36 82,944 0:08:46
37 19,712 0:13:08
38 0 0:45:22
39 20,736 3:41:03
40 0 9:35:00
41 0 25:34:47
