Задача 122
Эффективный метод возведения в степень

Наиболее простой способ нахождения n15 требует выполнения 14 умножений:

n × n × ... × n = n15

Если воспользоваться "двойным" методом, n15 можно найти, выполнив 6 умножений:

n × n = n2
n2 × n2 = n4
n4 × n4 = n8
n8 × n4 = n12
n12 × n2 = n14
n14 × n = n15

Однако, количество умножений можно еще уменьшить – до 5 умножений:

n × n = n2
n2 × n = n3
n3 × n3 = n6
n6 × n6 = n12
n12 × n3 = n15

Определим m(k) как минимальное количество умножений для нахождения nk. К примеру, m(15) = 5.

Найдите m(k) для 1 ≤ k ≤ 200.

Оригинал
 
© Проект Эйлера | Translated problems from ProjectEuler.net