Да, сложность O(log2(n) * log2(log2(n)))
.
Индекс j
внутреннего цикла соответствует рекуррентному соотношению j(k) = j(k-1)^2
, то есть j(k) = j(0)^(2^k)
(доказательство по индукции). Предположим, что j(0) = 2
(не 1
, потому что в противном случае вы бы зациклились бесконечно).
Следовательно, число итераций k
внутреннего цикла проверяет
j(k) >= n
<=> 2^(2^k) >= n
=> k >= log2(log2(n))
Число итераций внешнего цикла>> log2(n)
.