することで整数を一時的に固定小数点化するものです。演算量を減らす変形を重ねているのでわかりにくいかもしれませんが、非常に短いコードです。2n倍することを考えれば、(n/2)桁程度であることから決定していますが、初期値が甘いのでループ回数はやや多いです。ニュートン法を使った除算については、__こちら__をご覧ください。「Newton法初期値の改良バージョン」はこちらニュートン法を使った2進多桁の整数平方根(その2)(注)ここでのBigintクラスは、多倍長整数を格納する仮想のクラスであり、実在するものではありません。あったとしてニュートン法(2次漸化式)を使って(q)の逆数を求め、それに(p)を乗算する方法は多桁演算の定石です。この場合、多桁の浮動小数点型に変換して演算することが多いでしょう。ここでは、ニュートン法を整数演算のみで実装する方法について考えます。高次漸化式にも応用できますが、ここでは2次漸化式を使っています。X(i))と表せます。