babylonianSqrt method
Implementation
BigInt babylonianSqrt() {
var z = BigInt.zero;
BigInt x;
if (this > BigInt.from(3)) {
z = this;
x = this ~/ BigInt.two + BigInt.one;
while (x < z) {
z = x;
x = (this ~/ x + x) ~/ BigInt.two;
}
} else if (this != BigInt.zero) {
z = BigInt.one;
}
return z;
}