The program was developed in Java and has two approaches. The first is composed of two classes contained in a single file, to facilitate execution. To execute it is necessary to access the directory of the class and execute:
javac MagicSquareNormal.java
java MagicSquareNormal
The second approach is an adaptation to execution in multithreading, which consists of three classes divided into three files. The program provides an execution in four parallel threads in the most complex stretch of the algorithm. To execute it is necessary to access the directory of the class and execute:
javac MainThreads.java
java MainThreads