Файл содержит последовательность натуральных чисел, не превышающих 100 000. Назовём тройкой три идущих подряд элемента последовательности.
Определите количество троек, для которых выполняются следующие условия:
— в тройке есть пятизначные числа, но не все числа в тройке пятизначные;
— в тройке больше чисел,
— сумма элементов тройки больше максимального элемента последовательности, запись которого заканчивается
В ответе запишите два числа: сначала количество найденных троек, затем максимальную величину суммы элементов этих троек.
Ответ:
Приведём решение на языке Python.
a = [int(s) for s in open('17.txt')]
a238 = max([x for x in a if x % 1000 == 238])
count = 0
s3 = []
for i in range (len(a) - 2):
troika = [a[i] , a[i+1] , a[i+2]]
a3 = [x for x in troika if x % 3 == 0]
a5 = [x for x in troika if x % 5 == 0]
raz5 = [x for x in troika if len(str(x)) == 5]
if sum(troika) > a238:
if len(a3) > len (a5):
if 0 < len(raz5) < 3:
s3.append(sum(troika))
print(len(s3),max(s3))
В результате работы данного алгоритма при вводе данных из файла ответ — 1060 195565.
Ответ: 1060&195565.

