浮動小数点数オタクがAtCoder Beginner Contest 284のD問題をガチで解説してみる

に公開
1

Discussion

Mizar/みざーMizar/みざー

二分探索の他にも、整数上でニュートン・ラフソン法を使って平方根を計算する事もできます。

N\lt 2^{64}, 初期値s_0\lfloor\sqrt{N}\rfloor\le s_0\lt 2.9\sqrt{N} 程度の範囲であれば、 s_{n+1}=\lfloor(s_n+\lfloor a/s_n\rfloor)/2\rfloor の操作 7回目までに s_i=\lfloor\sqrt{N}\rfloor となる 0\le i \lt 7 を見つける事ができるかと思います。

https://zenn.dev/mizar/articles/791698ea860581#(参考)-整数上でのニュートン法にて平方根が計算できる理由