На вход программе с клавиатуры подается сначала число N, затем N чисел, принимающих значения от -10000 до 10000 включительно. Все числа предварительно сохраняются в массив. Определите и выведите на экран количество троек элементов массива, в которых все числа кратны 6, а произведение элементов тройки не менее максимального элемента последовательности, кратного 5. Гарантируется, что такой элемент в последовательности есть. Под тройкой подразумевается три подряд идущих элемента массива.
def count_valid_triplets(numbers):
"""
Считает количество троек элементов массива,
где все числа кратны 6,
а произведение элементов тройки не менее
максимального элемента последовательности, кратного 5.
Args:
numbers: список чисел
Returns:
количество троек
"""
# Находим максимальный элемент последовательности, кратный 5
max_five_multiple = max(filter(lambda x: x % 5 == 0, numbers))
# Счетчик троек
count_triplets = 0
# Перебираем элементы массива
for i in range(len(numbers) - 2):
# Проверяем, кратны ли 6 следующие три элемента
if numbers % 6 == 0 and numbers[i + 1] % 6 == 0 and numbers[i + 2] % 6 == 0:
# Проверяем,
# не меньше ли произведение элементов тройки
# максимального элемента последовательности, кратного 5
if numbers * numbers[i + 1] * numbers[i + 2] >= max_five_multiple:
count_triplets += 1
return count_triplets
# Ввод N чисел
n = int(input())
numbers = [int(input()) for _ in range]
# Вычисление и вывод ответа
count_triplets = count_valid_triplets(numbers)
print(count_triplets)
Объяснение:
Функция count_valid_triplets:
numbers: список чисел.
max_five_multiple: максимальный элемент последовательности, кратный 5.
count_triplets: счетчик троек.
Перебираем элементы массива.
Проверяем, кратны ли 6 следующие три элемента.
Проверяем,
не меньше ли произведение элементов тройки
максимального элемента последовательности, кратного 5.
Если все условия met, увеличиваем счетчик троек.
Ввод N чисел:
n - количество чисел.
numbers - список чисел.
Вычисление и вывод ответа:
count_triplets - количество троек.
Выводим ответ на экран.