Pentru astfel de cazuri, complexitatea de timp a buclei este O(log(log(n))). Următoarele cazuri analizează diferite aspecte ale problemei. Cazul 1: CPP for (int i = 2; i <=n; i = pow(i k)) { // some O(1) expressions or statements } In this case i takes values 2 2k(2k)k= 2k2(2k2)k= 2k3... 2kjurnalk(log(n)). Ultimul termen trebuie să fie mai mic sau egal cu n și avem 2kjurnalk(log(n))= 2jurnal(n)= n care este complet de acord cu valoarea ultimului nostru termen. Deci sunt în total jurnalk(log(n)) multe iterații și fiecare iterație durează o perioadă constantă de timp pentru a rula, prin urmare, complexitatea totală a timpului este O(log(log(n))). Cazul 2: CPP // func() is any constant root function for (int i = n; i > 1; i = func(i)) { // some O(1) expressions or statements } In this case i takes values n n1/k(n1/k)1/k= n1/k2n1/k3... n1/kjurnalk(log(n))deci sunt in total logk(log(n)) iterații și fiecare iterație necesită timp O(1), deci complexitatea totală a timpului este O(log(log(n))). Consultați articolul de mai jos pentru analiza diferitelor tipuri de bucle. https://www.geeksforgeeks.org/dsa/how-to-analyse-loops-for-complexity-analysis-of-algorithms/ Creați un test