Jan-17-2019, 03:45 AM
(This post was last modified: Jan-17-2019, 03:46 AM by abdullahali.)
Hello, I am trying to create a program that asks user for sequence of 9 numbers and then verifies if they . make a magic square or not. Magic square requirments: rows, coumns and diagonal all sum up to 15 each, and no number is repeated. When I run and enter [1, 2, 3, 4, 5, 6, 7, 8, 9] I get an error code.
N = 3 # Returns true if mat[][] is magic # square, else returns false. def is_magic(square): # calculate the sum of # the prime diagonal sum = 0 for i in range(0, N): sum= sum + square[i][i] # For sums of Rows for i in range(0, N): rowsum = 0 for j in range(0, N): rowsum += square[i][j] # check if every row sum is # equal to prime diagonal sum if (rowsum != sum): return False # For sums of Columns for i in range(0, N): columnsum = 0 for j in range(0, N): columnsum += square[j][i] # check if every column sum is # equal to prime diagonal sum if sum != columnsum: return False return True str_input = input("write a squence of nine numbers") str_list = str_input.split() square = [] for i in range(0, N): square.append([]) for j in range(0, N): square[i].append(str(str_list[j + i * N])) if is_magic(str_list): print("This is Magic Square") else: print("This is Not a magic Square")
Error: File "/Users/abdullahali/Desktop/a1-q1.py", line 47, in <module>
square[i].append(str(str_list[j + i * N]))
IndexError: list index out of range