singleton method Integer.sqrt

sqrt(n) -> Integer[permalink][rdoc][edit]

非負整数 n の整数の平方根を返します。すなわち n の平方根以下の最大の非負整数を返します。

[PARAM] n:
非負整数。Integer ではない場合は、最初に Integer に変換されます。
[EXCEPTION] Math::DomainError:
n が負の整数の時に発生します。

Integer.sqrt(0)        # => 0
Integer.sqrt(1)        # => 1
Integer.sqrt(24)       # => 4
Integer.sqrt(25)       # => 5
Integer.sqrt(10**400) == 10**200 # => true

Math.sqrt(n).floor と同等ですが、後者は浮動小数点数の精度の限界によって真の値とは違う結果になることがあります。


Integer.sqrt(10**46)     #=> 100000000000000000000000
Math.sqrt(10**46).floor  #=>  99999999999999991611392 (!)

[SEE_ALSO] Math.#sqrt