Я не знаю насчёт формул, но есть такой алгоритм, вроде не сильно медленнее извлечения корней из целых чисел. Обозначим через
кольцо целых элементов в
, его можно явно найти. Так как квадратные корни из элементов
снова лежат в
(если они вообще попали в ваше поле), то достаточно научиться решать задачу для этого кольца.
Рассмотрим гомоморфизм
, переводящий
в
, где
- это нетривиальный кубический корень из 1 (любой на выбор). Этот гомоморфизм является вложением решётки в трёхмерное вещественное векторное пространство.
В кольце
квадратный корень легко извлечь с любой точностью. Так как
является там решёткой, то у значений корня можно посчитать коэффициенты, с которым он раскладывается по базису
. Если они близки к целым, то можно округлить и проверить, что нашёлся корень.
Единственно, что в кольце
элемент общего вида имеет 4 квадратных корня, из которых подходят 0 или 2.