Функция 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) = 70.
Рассмотрим функцию. Функция определяет количество чисел, делящихся на 2, и э этому числу прибавляет 3. Также определят количество чисел делящихся на 3 и к этому числу прибавляет 2. Таким образом, надо представить число n как произведение степеней двойки на степеней тройки и на какой-либо множитель. Так как как будем брать минимально число, множитель можем взять за 1.
Приведём решение на языке Python.
otv = []
for i in range (100):
for j in range (100):
if 2 * i + 3 * j == 70:
otv.append(3**i * 2**j)
print(min(otv))
Ответ: 37748736.

