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

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

F(n)  =  F(n/2) + 3, если n чётно;

F(n)  =  F(n/3) + 2, если n нечётно и при этом крат­но 3;

F(n)  =  0, если n нечётно и не крат­но 3.

 

Опре­де­ли­те ми­ни­маль­ное зна­че­ние n, для ко­то­ро­го F(n)  =  67.

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

Ре­ше­ние.

Рас­смот­рим функ­цию. Функ­ция опре­де­ля­ет ко­ли­че­ство чисел, де­ля­щих­ся на 2, и э этому числу при­бав­ля­ет 3. Также опре­де­лят ко­ли­че­ство чисел де­ля­щих­ся на 3 и к этому числу при­бав­ля­ет 2. Таким об­ра­зом, надо пред­ста­вить число n как про­из­ве­де­ние сте­пе­ней двой­ки на сте­пе­ней трой­ки и на какой-либо мно­жи­тель. Так как как будем брать ми­ни­маль­но число, мно­жи­тель можем взять за 1.

 

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

otv = []

for i in range (100):

for j in range (100):

if 2 * i + 3 * j == 67:

otv.append(3**i * 2**j)

print(min(otv))

 

 

Ответ: 18 874 368.