في مثل هذه الحالات، يكون التعقيد الزمني للحلقة هو O(log(log(n))). تحلل الحالات التالية جوانب مختلفة من المشكلة. الحالة 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 2ك(2ك)ك= 2ك2(2ك2)ك= 2ك3... 2كسجلك(سجل (ن)). يجب أن يكون الحد الأخير أقل من أو يساوي n ولدينا 2كسجلك(سجل (ن))= 2سجل (ن)= n والتي تتفق تمامًا مع قيمة الحد الأخير. لذلك هناك في السجل الإجماليك(log(n)) العديد من التكرارات وكل تكرار يستغرق وقتًا ثابتًا للتشغيل وبالتالي فإن إجمالي تعقيد الوقت هو O(log(log(n))). الحالة 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/ك(ن1/ك)1/ك= ن1/ك2ن1/ك3... ن1/كسجلك(سجل (ن))لذلك هناك في السجل الإجماليك(log(n)) التكرارات وكل تكرار يستغرق وقتًا O(1) لذا فإن إجمالي تعقيد الوقت هو O(log(log(n))). راجع المقالة أدناه لتحليل أنواع مختلفة من الحلقات. https://www.geeksforgeeks.org/dsa/how-to-analyse-loops-for-complexity-analogy-of-algorithms/ إنشاء اختبار