procedure magicodd (n, x); value n; integer n; integer
     array x;
     comment for given side n the procedure generates a magic
     square of the integers 1 - n^2. For the method of De la
     Loubere, see M. Kraitchik, "Mathematical Recreations," p.
     149. n must be odd and n >= 3;
begin integer i, j, k;
   for i ≔ 1 step 1 until n do
        for j ≔ 1 step 1 until n do x[i,j] ≔ 0;
   i ≔ (n + 1) / 2; j ≔ n;
   for k ≔ 1 step 1 until n × n do begin
         if x[i,j] ≠ 0 then begin i ≔ i - 1; j ≔ j - 2;
            if i < 1 then i ≔ i + n; if j < 1 then j ≔ j + n end;
         x[i, j] ≔ k;
         i ≔ i + 1; if i > n then i ≔ i - n;
         j ≔ j + 1; if j > n then j ≔ j - n
      end
end magicodd;