Этот алгоритм известен как Вавилонский метод . Он сходится для любого положительного начального значения, поэтому ваш код верен.
Однако вы должны вернуться, как только абсолютная разница между последовательными значениями станет меньше малого значения (скажем, 1e-10), чтобы убедиться, что код заканчивается. В противном случае существует риск бесконечного l oop.