This is a simple console application developed with VB.NET for gerating the magic square of an odd number.
The magic squares problem leads to work into areas of mathematics such as theories of groups, lattices, Latin squares, determinants, partitions, matrices, and congruence arithmetic. Computer scientists are also perplexed by the difficulty of generating all magic squares of larger sizes.
In the solution, Sum
shows the summation of any row, column, or diagonal.
The complete code is like this....
Module Module1
Public s, size As Integer
Sub Main()
Dim n As Integer = 1
Dim i As Integer = 1
Dim j As Integer = 2
Console.WriteLine()
Console.Write("ENTER THE SIZE OF MAGIC SQUARE: ")
s = Console.ReadLine()
size = s
Dim sum As Integer = 0
Dim ans(s, s) As Integer
If s <> 3 Then
Dim tmp As Integer = (s - 3) \ 2
i = i + tmp
j = j + tmp
End If
While n <= s * s
If ans(i, j) = 0 Then
ans(i, j) = n
Else
n = n - 1
i = i + 2
End If
i = i - 1
j = j + 1
If (i = -1 And j = s) Then
i = 0
j = 1
End If
If j >= s Then
j = j - s
End If
If i < 0 Then
i = s - 1
End If
n = n + 1
End While
Console.WriteLine()
Console.WriteLine("MAGIC SQUARE:")
Console.WriteLine()
For k As Integer = 0 To size - 1
For l As Integer = 0 To size - 1
Console.Write(" " & ans(k, l))
Next
Console.WriteLine()
Next
Console.WriteLine()
sum = ans(s \ 2, s \ 2) * s
Console.Write("SUM: " & sum)
Console.ReadKey()
End Sub
End Module
The summation is based on this equation:
SUM = { N ( N^2 + 1 ) } / 2
Where the N is number of row or column. If N = 5, then the result will be 65.