Задания
Версия для печати и копирования в MS Word
Тип 17 № 81801
i

В файле со­дер­жит­ся по­сле­до­ва­тель­ность на­ту­раль­ных чисел. Её эле­мен­ты могут при­ни­мать целые зна­че­ния от 1 до 100 000 вклю­чи­тель­но. Опре­де­ли­те ко­ли­че­ство пар по­сле­до­ва­тель­но­сти, в ко­то­рых толь­ко один из эле­мен­тов яв­ля­ет­ся дву­знач­ным чис­лом, а сумма эле­мен­тов пары крат­на ми­ни­маль­но­му дву­знач­но­му эле­мен­ту по­сле­до­ва­тель­но­сти. В от­ве­те за­пи­ши­те ко­ли­че­ство най­ден­ных пар, затем мак­си­маль­ную из сумм эле­мен­тов таких пар. В дан­ной за­да­че под парой под­ра­зу­ме­ва­ет­ся два иду­щих под­ряд эле­мен­та по­сле­до­ва­тель­но­сти.

За­да­ние 17

Ответ:

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

f = [int(x) for x in open('DEMO_17.txt')]

dva = [x for x in f if len(str(x)) == 2]

otv = []

for i in range(len(f)-1):

x, y = f[i], f[i+1]

if (len(str(x)) == 2 and len(str(y)) != 2) or (len(str(x)) != 2 and len(str(y)) == 2):

if (x + y) % min(dva) == 0:

otv.append(x + y)

print(len(otv), max(otv))

Ре­зуль­тат ра­бо­ты про­грам­мы  — 150 9930.

 

Ответ: 150 9930.

 

При­ведём ре­ше­ние Алек­сандра Коз­ло­ва на языке Python.

f = [int(x) for x in open('DEMO_17.txt')]

dva = [x for x in f if len(str(x)) == 2]

otv = []

for x, y in zip(f, f[1:]):

if (10 <= x <= 99) + (10 <= y <= 99) == 1:

if (x + y) % min(dva) == 0:

otv.append(x + y)

print(len(otv), max(otv))

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

def good(p,m):

t = [10 <= x < 100 for x in p]

return sum(t) == 1 and sum(p)%m == 0

a = [int(s) for s in open('DEMO_17.txt')]

m = min([x for x in a if 10 <= x < 100])

r = [sum(a[i-1:i+1]) for i in range(1,len(a)) if good(a[i-1:i+1],m)]

print(len(r),max(r))

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2026 по ин­фор­ма­ти­ке