Home / list of functions / fwnbi::isqrt
template <size_t B, class D>
constexpr basic_integer<B, D, false> isqrt(const basic_integer<B, D, false>& value) noexcept;
constexpr since C++14

Calculates integer square root of integer. Equivalent math expression floor(sqrt(x)).

Example
#include "fwnbi.hpp"
#include <iostream>

using namespace fwnbi::literals;

int main() {
    std::cout << fwnbi::isqrt(15241578750190520_ull128) << '\n';
    std::cout << fwnbi::isqrt(15241578750190521_ull128) << '\n';
    std::cout << fwnbi::isqrt(15241578750190522_ull128) << '\n';
}
Output
123456788
123456789
123456789