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

Файл со­дер­жит по­сле­до­ва­тель­ность на­ту­раль­ных чисел, не пре­вы­ша­ю­щих 100 000. Назовём трой­кой три иду­щих под­ряд эле­мен­та по­сле­до­ва­тель­но­сти.

Опре­де­ли­те ко­ли­че­ство троек, для ко­то­рых вы­пол­ня­ют­ся сле­ду­ю­щие усло­вия:

—  в трой­ке есть четырёхзнач­ные числа;

—  в трой­ке не более од­но­го числа, у ко­то­ро­го оста­ток от де­ле­ния на 5 равен остат­ку от де­ле­ния на 5 ми­ни­маль­но­го эле­мен­та всей по­сле­до­ва­тель­но­сти;

—  в трой­ке не менее двух чисел, у ко­то­рых оста­ток от де­ле­ния на 7 равен остат­ку от де­ле­ния на 7 мак­си­маль­но­го эле­мен­та всей по­сле­до­ва­тель­но­сти.

В от­ве­те за­пи­ши­те два числа: сна­ча­ла ко­ли­че­ство най­ден­ных троек, затем мак­си­маль­ную ве­ли­чи­ну суммы эле­мен­тов этих троек.

За­да­ние 17

Ответ:

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

Ре­ше­ние.

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

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

amax7 = max(a) % 7

amin5 = min(a) % 5

s3 = []

for i in range (len(a) - 2):

troika = [a[i] , a[i+1] , a[i+2]]

alen4 = [x for x in troika if len(str(x)) == 4]

a7 = [x for x in troika if x % 7 == amax7]

a5 = [x for x in troika if x % 5 == amin5]

if len(a5) <= 1 and len(a7) >= 2 and len(alen4) > 0:

s3.append(sum(troika))

print(len(s3),max(s3))

 

 

Ответ: 103 194888.

 

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

def good(p,m,M):

t = [1000 <= x < 10000 for x in p]

t5 = [x%5 == m%5 for x in p]

t7 = [x%7 == M%7 for x in p]

return any(t) and sum(t5) <= 1 and sum(t7) >= 2

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

m = min(a)

M = max(a)

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

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


Аналоги к заданию № 75254: 75281 Все