def notPrime(num): for i in range(2,(num)): if num % i == 0: return True return False def maxPathSum(pyramid, m, n): for i in range(m-1, -1, -1): for j in range(i+1): if (pyramid[i+1][j] > pyramid[i+1][j+1]): pyramid[i][j] += pyramid[i+1][j] else: pyramid[i][j] += pyramid[i+1][j+1] return pyramid[0][0] file = open("test.txt","r") pyramid = [] count = 0 while True: data = file.readline().split() if not data: file.close() break pyramid.append(data) for row in pyramid: for i in range(len(row)): row[i] = int(row[i]) for row in pyramid: for num in range(len(pyramid[-1])-len(row)): row.append(0) for i in range(len(pyramid)): for j in range(len(pyramid)): if pyramid[i][j] == 0: continue if not notPrime(pyramid[i][j]): pyramid[i][j] = 0 len_row = len(pyramid) len_col = len(pyramid[0]) print(maxPathSum(pyramid,len_row-1,len_col-1))