# input
matrix = []
line = list(map(int, input().split()))
matrix.append(line)
for j in range(len(line) - 1):
line = list(map(int, input().split()))
matrix.append(line)
print(matrix)
# k + max
k = int(input("k: "))
maximum = matrix[0][0]
counter = 0
for arr in matrix:
for num in arr:
if num % k == 0:
if maximum < num:
maximum = num
counter += 1
print("{0} чисел, кратных {1}".format(counter, k))
if maximum != 0:
print("Максимальное число кратное {0} - {1}".format(k, maximum))
else:
print("Нет чисел кратных {0}".format(k))
Если одной строкой, уже массивом ([1,20,3,4],[2,5,5,5],[3,8,9,12],[8,9,10,11])# input
matrix = input().split("],[")
matrix[0] = matrix[0][1:]
matrix[len(matrix) - 1] = matrix[len(matrix)-1][:len(matrix[len(matrix) - 1])-1]
newMatrix = []
for arr in matrix:
line = list(map(int, arr.split(",")))
newMatrix.append(line)
matrix = newMatrix
print(matrix)
# k + max
k = int(input("k: "))
maximum = matrix[0][0]
counter = 0
for arr in matrix:
for num in arr:
if num % k == 0:
if maximum < num:
maximum = num
counter += 1
print("{0} чисел, кратных {1}".format(counter, k))
if maximum != 0:
print("Максимальное число кратное {0} - {1}".format(k, maximum))
else:
print("Нет чисел кратных {0}".format(k))

Конъюнкция истинна, если верны все конъюнкты. Значит, все импликации должны быть истинны.
Импликация истинна во всех случаях, кроме 1 → 0, поэтому если xk = 1, то и все x с номерами, большими k, единицы. Если записывать решение в виде строчки со значениями переменных от x1 до x5, получается 6 решений: 00000, 00001, 00011, 00111, 01111, 11111.
Аналогично, есть 6 решений для игреков: 11111, 11110, 11100, 11000, 10000, 00000.
x2 ∨ y2 = 1, значит, хотя бы одна из переменных x2, y2 истинна. Подсчитываем число комбинаций.
1) x2 истинна (решение 01111 или 11111). Подходят все 6 решений для игреков, по правилу произведения получаем 2 * 6 = 12 решений.
2) x2 ложна (4 решения). Подходят 4 решения для игреков (все, кроме 10000 и 00000). По правилу произведения 4 * 4 = 16 решений.
Всего 12 + 16 = 28 решений.