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

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

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

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

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

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

За­да­ние 17

Ответ:

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

Ре­ше­ние.

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

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

amax3 = max(a) % 3

amin7 = min(a) % 7

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 == amax3]

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

if len(a3) == 1 and len(a7) >= 2:

s3.append(sum(troika))

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

 

Ответ: 278 268089.

 

При­ведём ре­ше­ние Ми­ха­и­ла Глин­ско­го на языке Python.

s = open('17.txt').readlines()

m=[int(x) for x in s]

r=[]

maxi=max(m)%3

mini=min(m)%7

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

k3=0

if m[i]%3==maxi:

k3+=1

if m[i+1]%3==maxi:

k3+=1

if m[i+2]%3==maxi:

k3+=1

if k3==1:

k7=0

if m[i]%7==mini:

k7+=1

if m[i+1]%7==mini:

k7+=1

if m[i+2]%7==mini:

k7+=1

if k7 >= 2:r.append(m[i]+m[i+1]+m[i+2])

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