| 8 | 1 | 6 |
| 3 | 5 | 7 |
| 4 | 9 | 2 |
처음에는 가로, 세로, 대각선의 합이 모두 같을 때까지 계속 숫자를 채워나가는 조금 무식한 방법을 써보았는데, 위와 같은 3 x 3 크기의 마방진은 금방 풀리지만, 아래와 같은 5 x 5 크기 이상의 마방진은 쉽게 풀리지 않았다. 이 방법은 마방진의 크기가 커짐에 따라서 푸는 시간이 기하급수적으로 늘어나는 듯 했다.
| 17 | 24 | 1 | 8 | 15 |
| 23 | 5 | 7 | 14 | 16 |
| 4 | 6 | 13 | 20 | 22 |
| 10 | 12 | 19 | 21 | 3 |
| 11 | 18 | 25 | 2 | 9 |
그래서 마방진을 푸는 다른 방법을 찾아보았고, 인터넷 검색을 통해서 Siamese method라는 방법을 알게 되었다.
Siamese method(De la Loubère method)는 모든 홀수 크기의 마방진을 아주 쉽고 간단하게 풀어낼 수 있는 방법이다.

맨 먼저, 마방진의 첫 번째 행 중간을 1로 채운다.
그 다음, 오른쪽 위로 한 칸씩 이동한다. 만약, 마방진 밖으로 벗어나게 된다면, 각각 마방진의 첫 번째 열과 마지막 행으로 이동한다. 그리고 그곳에 다음 숫자를 채운다. 만약, 그곳에 이미 숫자가 채워져 있다면 이전에 숫자를 채워 넣었던 위치에서 아래로 한 칸 이동한 후, 그 곳에 다음 숫자를 채운다.
그 다음, 마방진 내에 모든 숫자를 다 채울 때까지 계속 위의 과정을 반복하면 된다.
그 다음, 오른쪽 위로 한 칸씩 이동한다. 만약, 마방진 밖으로 벗어나게 된다면, 각각 마방진의 첫 번째 열과 마지막 행으로 이동한다. 그리고 그곳에 다음 숫자를 채운다. 만약, 그곳에 이미 숫자가 채워져 있다면 이전에 숫자를 채워 넣었던 위치에서 아래로 한 칸 이동한 후, 그 곳에 다음 숫자를 채운다.
그 다음, 마방진 내에 모든 숫자를 다 채울 때까지 계속 위의 과정을 반복하면 된다.
이 방법을 C로 구현하면 다음과 같다.
펼쳐두기..



