🧮 Python Code: 3×3 Magic Square Generator (Siamese Method)version of the Magic Square Generator in Python, using the Siamese Method, which works for any odd-ordered square (3×3, 5×5, etc.).
def generate_magic_square(n):
if n % 2 == 0:
raise ValueError("This method works only for odd-order magic squares.")
magic_square = [[0 for _ in range(n)] for _ in range(n)]
num = 1
i, j = 0, n // 2
while num <= n**2:
magic_square[i][j] = num
num += 1
new_i = (i - 1) % n
new_j = (j + 1) % n
if magic_square[new_i][new_j]:
i = (i + 1) % n
else:
i, j = new_i, new_j
return magic_square
def print_square(square):
n = len(square)
for row in square:
print(" ".join(f"{num:2d}" for num in row))
print(f"Magic constant: {n * (n**2 + 1) // 2}")
def is_magic(square):
n = len(square)
magic_sum = sum(square[0])
for row in square:
if sum(row) != magic_sum:
return False
for col in zip(*square):
if sum(col) != magic_sum:
return False
if sum(square[i][i] for i in range(n)) != magic_sum:
return False
if sum(square[i][n - i - 1] for i in range(n)) != magic_sum:
return False
return True
# Generate and display the magic square
n = 3
magic_square = generate_magic_square(n)
print("Generated Magic Square:")
print_square(magic_square)
# Verify the square
if is_magic(magic_square):
print("✅ This is a valid magic square.")
else:
print("❌ This is not a valid magic square.")
✅ Expected Output for n = 3
:
2 7 6
9 5 1
4 3 8
Magic constant: 15
✅ This is a valid magic square.