Цілочисленний квадратний корінь

isqrt(n) = ⌊ n ⌋. >(n)=\lfloor >\rfloor .>

Наприклад, isqrt (27) = 5 >(27)=5> оскільки 5 2 = 25 27 = 25 і 27 "6 2 = 36 27 = 36 27 27" .

Зміст

Використання тільки цілого розподілу

Для обчислення ⌊ n ⌋ >\rfloor > для дуже великих цілих чиселnможна використовувати приватний поділ із залишком при обох операціях поділу. Перевагою є використання цілих чисел для кожного проміжного значення, що звільняє від використання подання чисел у вигляді чисел з плаваючою комою. Це еквівалентно використанню ітеративної формули

Грунтуючись на факті, що

Використовуючи бітові операції

Якщо * означає множення, то означає зрушення вліво, а >> - логічний зсув вправо, рекурсивний алгоритм пошуку цілісного квадратного кореня з будь-якого натурального числа наступний:

Або ітерації замість рекурсії:

У додатках, які використовують відмінні від раціональних чисел формати (наприклад, кому кому), константу зупинки слід вибрати меншої одиниці, щоб уникнути помилок округлення.