Интересует алгоритм вычисления квадратного корня, использующий исключительно целочисленную арифметику.
Логично предположить что и результат аппроксимации выражается простой дробью. Тогда трудно представить для фиксированного
что-то быстрее последовательности
, где пара
- первое решение уравнения Пелля, т.е.
,
.
Для разложения
есть доморощенный метод. В виде таблицы:
Тут
- собственно знаки непрерывной дроби,
- некая вспомогательная переменная,
- остатки вида
, для которых имеет место рекуррентная зависимость. Вычисления ведутся до
, и простая дробь восстанавливается от последнего знака. Умножение присутствует, но только для целых чисел
. Можно впрочем сократить количество вычислений и до полупериода, хотя тут тонкости начинаются. Думаю, Вам это не подойдет, но интересно бы оценить сложность алгоритма.