Никакой язык здесь не нужен. Задача математическая.
Сначала, давайте определим функции:
1) Для всех натуральных n,
![\displaystyle f(n)= \left \{ {{f(n/2)+1\,, \text{if } n \equiv 0 \pmod 2}\atop {f(n-1)+1\,,\text{if } n\equiv 1 \pmod 2 \land n\neq1 }} \right., f(1)=0 \displaystyle f(n)= \left \{ {{f(n/2)+1\,, \text{if } n \equiv 0 \pmod 2}\atop {f(n-1)+1\,,\text{if } n\equiv 1 \pmod 2 \land n\neq1 }} \right., f(1)=0](https://tex.z-dn.net/?f=%5Cdisplaystyle%20f%28n%29%3D%20%5Cleft%20%5C%7B%20%7B%7Bf%28n%2F2%29%2B1%5C%2C%2C%20%5Ctext%7Bif%20%7D%20n%20%5Cequiv%200%20%5Cpmod%202%7D%5Catop%20%7Bf%28n-1%29%2B1%5C%2C%2C%5Ctext%7Bif%20%7D%20n%5Cequiv%201%20%5Cpmod%202%20%5Cland%20n%5Cneq1%20%7D%7D%20%5Cright.%2C%20f%281%29%3D0)
Очевидно, что эта функция равна количеству умножений, которые нужно выполнить используя данный алгоритм (для того чтобы вычислить
).
2) Для все натуральных n,
.
Таким образом, нам требуется вычислить
![f(2n)=f(n)+1=f(2^{12}-1)+1=L(12)+1 f(2n)=f(n)+1=f(2^{12}-1)+1=L(12)+1](https://tex.z-dn.net/?f=f%282n%29%3Df%28n%29%2B1%3Df%282%5E%7B12%7D-1%29%2B1%3DL%2812%29%2B1)
Заметим, что
![L(n+1)=L(n)+2 L(n+1)=L(n)+2](https://tex.z-dn.net/?f=L%28n%2B1%29%3DL%28n%29%2B2)
![L(1)=0 L(1)=0](https://tex.z-dn.net/?f=L%281%29%3D0)
Т.к.
![f(2^{n+1}-1)=f(2^{n+1}-2)+1=f(2(2^n-1))+1=f(2^n-1)+2 f(2^{n+1}-1)=f(2^{n+1}-2)+1=f(2(2^n-1))+1=f(2^n-1)+2](https://tex.z-dn.net/?f=f%282%5E%7Bn%2B1%7D-1%29%3Df%282%5E%7Bn%2B1%7D-2%29%2B1%3Df%282%282%5En-1%29%29%2B1%3Df%282%5En-1%29%2B2)
![f(2^1-1)=f(1)=0 f(2^1-1)=f(1)=0](https://tex.z-dn.net/?f=f%282%5E1-1%29%3Df%281%29%3D0)
Используя математическую индукцию, легко доказать что для всех n>1,
Следовательно,
![f(2n)=L(12)+1=2\cdot 11 +1=23 f(2n)=L(12)+1=2\cdot 11 +1=23](https://tex.z-dn.net/?f=f%282n%29%3DL%2812%29%2B1%3D2%5Ccdot%2011%20%2B1%3D23)