Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел.
Определите количество строк таблицы, состоящих из чисел, для которых выполнены оба условия:
- в строке только одно число повторяется трижды, остальные числа различны;
- куб повторяющегося числа строки меньше произведения всех её неповторяющихся чисел.
В ответе запишите только число.
Решение
В каждой строке одно число повторяется трижды, остальные три различны. Отбираем строки, где куб тройки меньше произведения остальных.
# Таблица уже сохранена в файле 9.txt. Открываем его
f = open('9.txt')
count = 0
# Читаем строки и разбиваем на числа
for line in f:
nums = list(map(int, line.split()))
values = set(nums)
# Ищем число-тройку и три уникальных числа
triple = [x for x in values if nums.count(x) == 3]
unique = [x for x in values if nums.count(x) == 1]
# Проверяем: куб тройки меньше произведения остальных
if len(triple) == 1 and len(unique) == 3:
if triple[0] ** 3 < unique[0] * unique[1] * unique[2]:
count += 1
# Выводим count — количество подходящих строк. Жми RUN
print(count)
Ответ: 179.
Решение. В столбцах A–F — исходные числа. В диапазоне G1:L25000 считаем, сколько раз каждое число встречается в строке (формула =СЧЁТЕСЛИ($A1:F1;A1)).
В столбце M отметим строки, где одно число встречается трижды, а остальные три различны: =ЕСЛИ(И(СЧЁТЕСЛИ(G1:L1;3)=1;СЧЁТЕСЛИ(G1:L1;1)=3);1;0).
В диапазоне N1:S1 оставим только тройное число: =ЕСЛИ(G1=3;A1;"").
В T — само тройное число (=СУММ(N1:S1)/3), в U — произведение неповторяющихся (=ПРОИЗВЕД(G1=1;A1:F1) или эквивалент через столбцы с единичными повторами).
В V проверим второе условие: =ЕСЛИ(И(M1=1;T1^3<U1);1;0).
Отфильтруем строки с 1 в столбце V и посчитаем их количество.
Получим ответ — 179.