```The three rules of Ruby Quiz:

1.  Please do not post any solutions or spoiler discussion for this quiz until
48 hours have passed from the time on this message.

2.  Support Ruby Quiz by submitting ideas as often as you can:

http://www.rubyquiz.com/

3.  Enjoy!

Suggestion:  A [QUIZ] in the subject of emails about the problem helps everyone
if you can.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

A magic square of size N is a square with the numbers from 1 to N ** 2 arranged
so that each row, column, and the two long diagonals have the same sum.  For
example, a magic square for N = 5 could be:

+------------------------+
| 15 |  8 |  1 | 24 | 17 |
+------------------------+
| 16 | 14 |  7 |  5 | 23 |
+------------------------+
| 22 | 20 | 13 |  6 |  4 |
+------------------------+
|  3 | 21 | 19 | 12 | 10 |
+------------------------+
|  9 |  2 | 25 | 18 | 11 |
+------------------------+

In this case the magic sum is 65.  All rows, columns, and both diagonals add up
to that.

This week's Ruby Quiz is to write a program that builds magic squares.  To keep
the problem easy, I will say that your program only needs to work for odd values
of N.  Try to keep your runtimes pretty reasonable even for the bigger values of
N:

\$ time ruby magic_square.rb 9
+--------------------------------------------+
| 45 | 34 | 23 | 12 |  1 | 80 | 69 | 58 | 47 |
+--------------------------------------------+
| 46 | 44 | 33 | 22 | 11 |  9 | 79 | 68 | 57 |
+--------------------------------------------+
| 56 | 54 | 43 | 32 | 21 | 10 |  8 | 78 | 67 |
+--------------------------------------------+
| 66 | 55 | 53 | 42 | 31 | 20 | 18 |  7 | 77 |
+--------------------------------------------+
| 76 | 65 | 63 | 52 | 41 | 30 | 19 | 17 |  6 |
+--------------------------------------------+
|  5 | 75 | 64 | 62 | 51 | 40 | 29 | 27 | 16 |
+--------------------------------------------+
| 15 |  4 | 74 | 72 | 61 | 50 | 39 | 28 | 26 |
+--------------------------------------------+
| 25 | 14 |  3 | 73 | 71 | 60 | 49 | 38 | 36 |
+--------------------------------------------+
| 35 | 24 | 13 |  2 | 81 | 70 | 59 | 48 | 37 |
+--------------------------------------------+

real    0m0.012s
user    0m0.006s
sys     0m0.006s

For extra credit, support even values of N.  You don't need to worry about N = 2
though as it is impossible.

```