5
|
Задача 228. Эффективный метод возведения в степеньпостоянный адрес задачи: http://www.diofant.ru/problem/601/показать код для вставки на свой сайт >> |
Задачу решили:
10
всего попыток:
36
поделиться задачей:
|
|
Задача опубликована:
30.11.09 08:00
Прислал:
mikev
Источник:
Проект "Эйлер" (http://projecteuler.net)
Вес:
1
сложность:
1
класс:
8-10
баллы: 100
Темы:
арифметика
|
|
Первое, что приходит в голову, когда нужно возвести число в 15-ю степень, это просто выполнить четырнадцать умножений:
n n ... n = n15
Если использовать "бинарный" метод, того же результата можно достичь, выполнив всего шесть умножений:
n n = n2
n2 n2 = n4
n4 n4 = n8
n8 n4 = n12
n12 n2 = n14
n14 n = n15
Но оказывается, что количество умножений можно сократить до пяти:
n n = n2
n2 n = n3
n3 n3 = n6
n6 n6 = n12
n12 n3 = n15
Определим m(k) как минимальное количество умножений, необходимое для вычисления nk; например, m(15) = 5.
Найдите наименьшее значение k, для которого m(k)=12.
Пожалуйста, не пишите нам, что Вы не можете решить задачу.
Если Вы не можете ее решить, значит Вы не можете ее решить :-)
Если Вы не можете ее решить, значит Вы не можете ее решить :-)
Обсуждение Правила >>
Внимание! В обсуждении задачи запрещено публиковать ответы и давать подсказки.