Magic squares of odd order: Difference between revisions

Frink
(→‎{{header|Picat}}: Added subsection, added {{out}})
(Frink)
Line 1,704:
55 57 70 83 96 109 111 3 16 29 42
Only the first 2 square shown. 56 69 82 95 108 121 2 15 28 41 54</pre>
 
=={{header|Frink}}==
<lang frink>order = length[ARGS] > 0 ? eval[ARGS@0] : undef
until isInteger[order] and order mod 2 == 1
{
order = eval[input["Enter order (must be odd): ", 3]]
}
 
a = new array[[order, order], undef]
x = order div 2
y = 0
 
for i = 1 to order^2
{
ny = (y - 1) mod order
nx = (x + 1) mod order
if a@ny@nx != undef
{
nx = x
ny = (y + 1) mod order
}
a@y@x = i
 
y = ny
x = nx
}
 
println[formatTable[a]]
println["Magic number is " + sum[a@0]]</lang>
{{out}}
<pre>
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
Magic number is 65
</pre>
 
 
=={{header|Go}}==
490

edits