Никакой язык здесь не нужен. Задача математическая.
Сначала, давайте определим функции:
1) Для всех натуральных n,

Очевидно, что эта функция равна количеству умножений, которые нужно выполнить используя данный алгоритм (для того чтобы вычислить
).
2) Для все натуральных n,
.
Таким образом, нам требуется вычислить

Заметим, что


Т.к.


Используя математическую индукцию, легко доказать что для всех n>1,
Следовательно,
