ライブラリを使わずに平方根を求めるプログラムで
double root(int num, int deapth)
{
        double ret = 0.0;
        double unit = 1.0;
        int d;

        for(d = 0; d < deapth; ret += unit) {
                /* ぴったりですけど */
                if(num == SQPOW(ret)) break;
                /* 越えたんですけど */
                if(num <  SQPOW(ret)) {
                        ret -= unit;        /* 一個前なんですけど */
                        unit /= 10.0;        /* 位変えるんですけど */
                        d++;
                }
        }

        return ret;
}
を作りましたが、root(5, 100)とすると
フリーズしてしまいます。どうすればいいでしょうか?