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

Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ции F(n), где n  — целое не­от­ри­ца­тель­ное число, задан сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

F левая круг­лая скоб­ка 0 пра­вая круг­лая скоб­ка = 0, F левая круг­лая скоб­ка n пра­вая круг­лая скоб­ка =F левая круг­лая скоб­ка n — 1 пра­вая круг­лая скоб­ка плюс n.

Ука­жи­те ко­ли­че­ство таких чисел n из ин­тер­ва­ла 237 567 892 ⩽ n ⩽ 1 134 567 004, для ко­то­рых F(n) не де­лит­ся без остат­ка на 3.

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

Ре­ше­ние.

Функ­ция F(n)  =  F(n – 1) + n воз­вра­ща­ет сумму чисел от 1 до n.

Рас­смот­ри на­ча­ло по­сле­до­ва­тель­но­сти:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20...

За­ме­тим, что оста­ток от де­ле­ния на 3 будет равен 0 каж­дое тре­тье число.

Остат­ки от де­ле­ния на 3:

1, 2, 0, 1, 2, 0, 1, 2, 0...

Из­вест­но, что оста­ток от де­ле­ния на 3 суммы остат­ков от де­ле­ния чисел на число 3 равен остат­ку от де­ле­ния суммы чисел на число 3. Дру­ги­ми сло­ва­ми, оста­ток суммы остат­ков равен остат­ку суммы ис­ход­ных чисел.

По­это­му по­сле­до­ва­тель­ность остат­ков сумм всех чисел от 1 до n при де­ле­нии на 3 будет:

1, 0, 0, 1, 0, 0, 1, 0, 0...

Таким об­ра­зом, что F(n) не де­лит­ся на 3, толь­ко если оста­ток от де­ле­ния n на 3 равен 1.

 

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

Найдём ми­ни­маль­ное число, ко­то­рое не мень­ше a и даёт оста­ток 1 (то есть самое ма­лень­кое на от­рез­ке). Это можно сде­лать, на­при­мер, по фор­му­ле (a + 1)//3 · 3 + 1.

Найдём мак­си­маль­ное число, ко­то­рое не боль­ше b и даёт оста­ток 1. Воз­мож­ная фор­му­ла (b – 1)//3 · 3 + 1.

Ко­ли­че­ство таких чисел, оче­вид­но, есть (мак­си­маль­ное-ми­ни­маль­ное)//3 + 1.

a,b = 237567892,1134567004

print(((b-1)//3*3-(a+1)//3*3)//3+1)

По­сколь­ку оста­ток де­ле­ния числа 237 567 892 на 3 равен еди­ни­це, то можно при­ве­сти дру­гое ре­ше­ние.

 

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

a,b = 237567892,1134567004

print(len(range((a+1)//3*3, b+1, 3)))

 

Ответ: 298 999 705.


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