Magic Square

\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors) \newcommand\bs[1]{\mathbf{#1}}\\% Poor man's siunitx \newcommand\unit[1]{\mathrm{#1}} \newcommand\num[1]{#1} \newcommand\qty[2]{#1~\unit{#2}}\\\newcommand\per{/} \newcommand\squared{{}^2} % % Scale \newcommand\milli{\unit{m}} \newcommand\centi{\unit{c}} \newcommand\kilo{\unit{k}} \newcommand\mega{\unit{M}} % % Angle \newcommand\radian{\unit{rad}} \newcommand\degree{\unit{{}^\circ}} % % Time \newcommand\second{\unit{s}} % % Distance \newcommand\meter{\unit{m}} \newcommand\m{\meter} \newcommand\inch{\unit{in}} \newcommand\feet{\unit{ft}} \newcommand\mile{\unit{mi}} \newcommand\mi{\mile} % % Volume \newcommand\gallon{\unit{gal}} % % Mass \newcommand\gram{\unit{g}} \newcommand\g{\gram} % % Frequency \newcommand\hertz{\unit{Hz}} \newcommand\rpm{\unit{rpm}} % % Voltage \newcommand\volt{\unit{V}} \newcommand\V{\volt} \newcommand\millivolt{\milli\volt} \newcommand\mV{\milli\volt} \newcommand\kilovolt{\kilo\volt} \newcommand\kV{\kilo\volt} % % Current \newcommand\ampere{\unit{A}} \newcommand\A{\ampere} \newcommand\milliampereA{\milli\ampere} \newcommand\mA{\milli\ampere} \newcommand\kiloampereA{\kilo\ampere} \newcommand\kA{\kilo\ampere} % % Resistance \newcommand\ohm{\Omega} \newcommand\milliohm{\milli\ohm} \newcommand\kiloohm{\kilo\ohm} % correct SI spelling \newcommand\kilohm{\kilo\ohm} % "American" spelling used in siunitx \newcommand\megaohm{\mega\ohm} % correct SI spelling \newcommand\megohm{\mega\ohm} % "American" spelling used in siunitx % % Inductance \newcommand\henry{\unit{H}} \newcommand\H{\henry} \newcommand\millihenry{\milli\henry} \newcommand\mH{\milli\henry} % % Temperature \newcommand\celsius{\unit{^{\circ}C}} \newcommand\C{\unit{\celsius}} \newcommand\fahrenheit{\unit{^{\circ}F}} \newcommand\F{\unit{\fahrenheit}} \newcommand\kelvin{\unit{\K}} \newcommand\K{\unit{\kelvin}}\\% Power \newcommand\watt{\unit{W}} \newcommand\W{\watt} \newcommand\milliwatt{\milli\watt} \newcommand\mW{\milli\watt} \newcommand\kilowatt{\kilo\watt} \newcommand\kW{\kilo\watt} % % Torque \newcommand\ozin{\unit{oz}\text{-}\unit{in}} \newcommand\newtonmeter{\unit{N\text{-}m}}\end{aligned}\end{align} \]

Apr 16, 2025 | 238 words | 2 min read

7.2.4. Magic Square#

Instructions#

The Lo Shu Magic Square is a grid of numbers with \(3\) rows and \(3\) columns, which has the following properties:

  • The grid contains the numbers \(1\) through \(9\) exactly.

  • The sum of each row, each column, and each diagonal all add up to \(15\).

An example of the Lo Shu Magic Square is shown in Fig. 7.3

The Lo Shu Magic Square.

Fig. 7.3 The Lo Shu Magic Square.#

Write a function named print_square that takes a two-dimensional list representing a \(3\) by \(3\) grid of numbers as its argument and prints the grid showing the numbers in the square. Then write another function named is_magic that takes a similar two-dimensional list of numbers as its argument and returns the Boolean value True if the argument represents a Lo Shu magic square and False otherwise.

Finally, complete the main function of the program to determine if each of the provided squares are Lo Shu magic squares and display the results. It might help to write additional functions to check each of the requirements or handle printing. The provided squares are:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[5, 5, 5], [5, 5, 5], [5, 5, 5]]
[[4, 9, 2], [3, 5, 7], [8, 1, 6]]

Sample Output#

Ensure your program’s output matches the provided samples exactly. This includes all characters, white space, and punctuation. In the samples, user input is highlighted like this for clarity, but your program should not highlight user input in this way.

Sample Output

$ python3 magic_square_login.py Your square is: 1 2 3 4 5 6 7 8 9 It is not a Lo Shu magic square.

Your square is: 5 5 5 5 5 5 5 5 5 It is not a Lo Shu magic square.

Your square is: 4 9 2 3 5 7 8 1 6 It is a Lo Shu magic square!

Deliverables#

Save your finished program as magic_square_login.py, replacing login with your Purdue login. Then submit it along with all the deliverables listed in Table 7.4 below.

Table 7.4 Deliverables#

Deliverable

Description

magic_square_login.py

Your finished program.

Screenshot(s)

PNG(s) capturing the test case.