Нахождение квадратного корня без использования функции sqrt?

Я выяснил алгоритм определения квадратного корня без использования функции sqrt, а затем попытался применить его в программировании. Я в конечном итоге с этим рабочим кодом в C ++

    #include <iostream>
    using namespace std;

    double SqrtNumber(double num)
    {
             double lower_bound=0; 
             double upper_bound=num;
             double temp=0;                    /* ek edited this line */

             int nCount = 50;

        while(nCount != 0)
        {
               temp=(lower_bound+upper_bound)/2;
               if(temp*temp==num) 
               {
                       return temp;
               }
               else if(temp*temp > num)

               {
                       upper_bound = temp;
               }
               else
               {
                       lower_bound = temp;
               }
        nCount--;
     }
        return temp;
     }

     int main()
     {
     double num;
     cout<<"Enter the number\n";
     cin>>num;

     if(num < 0)
     {
     cout<<"Error: Negative number!";
     return 0;
     }

     cout<<"Square roots are: +"<<sqrtnum(num) and <<" and -"<<sqrtnum(num);
     return 0;
     } 

Теперь проблема заключается в инициализации количества итераций nCount в объявлении (здесь оно равно 50). Например, для определения квадратного корня из 36 требуется 22 итерации, поэтому проблем не возникает, тогда как для поиска квадратного корня из 15625 требуется более 50 итераций, поэтому после 50 итераций будет возвращено значение temp. Пожалуйста, дайте решение для этого.

Ответы на вопрос(10)

Ваш ответ на вопрос