import math
# 求解九宫格
def sudoku():
nums_list = input().split(" ")
nums_list = [int(num) for num in nums_list]
mul_item, d_list = search_tuple(nums_list)
ans_list = arrange_tuple(mul_item, d_list)
ans_list = sort_ans_list(ans_list)
print_ans_list(ans_list)
# 求解幻积并统计符合规律的每个数字出现的次数
def search_tuple(nums_list):
# 求解幻积
total_mul = 1
for num in nums_list:
total_mul *= num
# 幻积
mul_item = round(math.pow(total_mul, (1 / 3)))
nums_list.sort()
# 寻找符合幻积的数字对,并统计每个数字出现的次数
d = {}
length = len(nums_list)
for i in range(length - 2):
for j in range(i + 1, length - 1):
for k in range(j + 1, length):
if nums_list[i] * nums_list[j] * nums_list[k] == mul_item:
d[nums_list[i]] = d[nums_list[i]] + 1 if nums_list[i] in d.keys() else 1
d[nums_list[j]] = d[nums_list[j]] + 1 if nums_list[j] in d.keys() else 1
d[nums_list[k]] = d[nums_list[k]] + 1 if nums_list[k] in d.keys() else 1
d_list = sorted(d.items(), key=lambda x: x[1], reverse=True)
return mul_item, d_list
# 根据各个数字出现的次数排列9个数字的顺序
def arrange_tuple(mul_item, d_list):
ans_list = []
for i in range(5):
if i == 2:
continue
tmp = [0 for _ in range(9)]
tmp[4] = d_list[0][0]
tmp[2 * i] = d_list[1][0]
other_value = 0
for item in d_list[2: 5]:
if tmp[2 * i] * tmp[4] * item[0] == mul_item:
other_value = item[0]
tmp[8 - 2 * i] = other_value
line_list = []
for item in d_list[2: 5]:
if item[0] != tmp[2 * i] and item[0] != tmp[8 - 2 * i]:
line_list.append(item[0])
if 2 * i == 0 or 2 * i == 8:
location_list = [2, 6]
else:
location_list = [0, 8]
for j in range(2):
tmp = tmp.copy()
if j == 0:
tmp[location_list[0]] = line_list[0]
tmp[location_list[1]] = line_list[1]
else:
tmp[location_list[0]] = line_list[1]
tmp[location_list[1]] = line_list[0]
tmp[1] = mul_item // (tmp[0] * tmp[2])
tmp[3] = mul_item // (tmp[0] * tmp[6])
tmp[5] = mul_item // (tmp[2] * tmp[8])
tmp[7] = mul_item // (tmp[6] * tmp[8])
ans_list.append(tmp)
return ans_list
# 排序
def sort_ans_list(ans_list):
ans_list.sort(key=lambda x: (x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8]))
return ans_list
# 打印列表
def print_ans_list(ans_list):
for item_list in ans_list:
for item in item_list:
print(item, end=" ")
print()
if __name__ == '__main__':
sudoku()
import math
# 求解九宫格
def sudoku():
nums_list = input().split(" ")
nums_list = [int(num) for num in nums_list]
mul_item, d_list = search_tuple(nums_list)
ans_list = arrange_tuple(mul_item, d_list)
ans_list = sort_ans_list(ans_list)
print_ans_list(ans_list)
# 求解幻积并统计符合规律的每个数字出现的次数
def search_tuple(nums_list):
# 求解幻积
total_mul = 1
for num in nums_list:
total_mul *= num
# 幻积
mul_item = round(math.pow(total_mul, (1 / 3)))
nums_list.sort()
# 寻找符合幻积的数字对,并统计每个数字出现的次数
d = {}
length = len(nums_list)
for i in range(length - 2):
for j in range(i + 1, length - 1):
for k in range(j + 1, length):
if nums_list[i] * nums_list[j] * nums_list[k] == mul_item:
d[nums_list[i]] = d[nums_list[i]] + 1 if nums_list[i] in d.keys() else 1
d[nums_list[j]] = d[nums_list[j]] + 1 if nums_list[j] in d.keys() else 1
d[nums_list[k]] = d[nums_list[k]] + 1 if nums_list[k] in d.keys() else 1
d_list = sorted(d.items(), key=lambda x: x[1], reverse=True)
return mul_item, d_list
# 根据各个数字出现的次数排列9个数字的顺序
def arrange_tuple(mul_item, d_list):
ans_list = []
for i in range(5):
if i == 2:
continue
tmp = [0 for _ in range(9)]
tmp[4] = d_list[0][0]
tmp[2 * i] = d_list[1][0]
other_value = 0
for item in d_list[2: 5]:
if tmp[2 * i] * tmp[4] * item[0] == mul_item:
other_value = item[0]
tmp[8 - 2 * i] = other_value
line_list = []
for item in d_list[2: 5]:
if item[0] != tmp[2 * i] and item[0] != tmp[8 - 2 * i]:
line_list.append(item[0])
if 2 * i == 0 or 2 * i == 8:
location_list = [2, 6]
else:
location_list = [0, 8]
for j in range(2):
tmp = tmp.copy()
if j == 0:
tmp[location_list[0]] = line_list[0]
tmp[location_list[1]] = line_list[1]
else:
tmp[location_list[0]] = line_list[1]
tmp[location_list[1]] = line_list[0]
tmp[1] = mul_item // (tmp[0] * tmp[2])
tmp[3] = mul_item // (tmp[0] * tmp[6])
tmp[5] = mul_item // (tmp[2] * tmp[8])
tmp[7] = mul_item // (tmp[6] * tmp[8])
ans_list.append(tmp)
return ans_list
# 排序
def sort_ans_list(ans_list):
ans_list.sort(key=lambda x: (x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8]))
return ans_list
# 打印列表
def print_ans_list(ans_list):
for item_list in ans_list:
for item in item_list:
print(item, end=" ")
print()
if __name__ == '__main__':
sudoku()