Он выполняется в O(log n)
В функции нет дорогостоящих операций (так как я дороже, чем возведение в квадрат или моддинг. Нет циклов и т. Д.), Поэтому мы можем просто посчитать вызовы функций.
Наилучший случай - это степень двойки, нам потребуется ровно log (n) вызовов.
В худшем случае мы получим нечетное число при каждом другом вызове.Это может сделать не более, чем удвоить наши звонки.Умножение на постоянный множитель, не хуже асимптотически.2*f(x) is still O(f(x))
O(logn)