Задание 17. Информатика. ЕГЭ. Поляков-7988
- Просмотры: 195
- Изменено: 22 февраля 2025
В файле содержится последовательность натуральных чисел, не превышающих \(100~000.\) Определите количество троек элементов последовательности, для которых выполняются следующие условия:
- в тройке есть трёхзначные числа;
- в тройке не более одного числа, у которого сумма цифр равна количеству элементов всей последовательности, делящихся на \(531;\)
- в тройке не менее двух чисел, у которых сумма цифр равна количеству элементов всей последовательности, делящихся на \(773.\)
В ответе запишите два числа: сначала количество найденных троек, затем среднее арифметическое сумм элементов этих троек, округленное до ближайшего меньшего целого числа. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Решение:
Python
base = ''
nums = [int(x) for x in open(base + '17.txt')]
q531 = sum(x % 531 == 0 for x in nums)
q773 = sum(x % 773 == 0 for x in nums)
q, sum_el = 0, 0
for tr in zip(nums, nums[1:], nums[2:]):
if any(99 < x < 1000 for x in tr) \
and sum(sum(int(z) for z in str(x)) == q531 for x in tr) < 2 \
and sum(sum(int(z) for z in str(x)) == q773 for x in tr) > 1:
q += 1
sum_el += sum(tr)
print(q, int(sum_el / q))
Ответ: \(96 \,\, 29445\)