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

