Цитата(SergVZ @ Oct 15 2007, 09:38)

Xn+1=(Xn+Y/Xn)/2; Y - это то, из чего корень извлекают. X0 - скажем Y/2.
Брать за Х0 число Y/2 - не самый лучший вариант...
Когда-то давно самому пришлось писать функцию вычисления корня квадратного. Программулину ту что-то найти не удаётся... По-памяти:
Если вспомнить, что вещественные числа в памяти хранятся в виде 2^N*M, то квадратный корень от числа будет равен 2^(N/2)*sqtr(M). Плохо то, что N может быть нечётным, да и корень от мантисы взять неоткуда... Но за X0 очень хорошо взять число хотя бы со степенью N/2, тем более, что получить его, обычно, очень просто - сдвигом вправо на 1 разряд. При этом получаем промежуточный результат с 1-2 верными первыми десятичными цифрами.
Ну, а дальше - Ньютон: каждая итерация добавляет ещё 1-2 верные цифры. Правда, если итерация дала 2 верные цифры, то следующая скорее всего даст только одну. Для получения шести верных первых цифр всегда достаточно взять Х0 по правилу изложенному выше и сделать 3 итерации.