sqrt(n) -> IntegerRuby 2.5.0 から[permalink][rdoc][edit]-
非負整数
nの整数の平方根を返します。すなわちnの平方根以下の最大の非負整数を返します。- [PARAM]
n: -
非負整数。
Integerではない場合は、最初にIntegerに変換されます。 - [EXCEPTION]
Math::DomainError: -
nが負の整数の時に発生します。
p Integer.sqrt(0) # => 0 p Integer.sqrt(1) # => 1 p Integer.sqrt(24) # => 4 p Integer.sqrt(25) # => 5 p Integer.sqrt(10**400) == 10**200 # => trueMath.sqrt(n).floor と同等ですが、後者は浮動小数点数の精度の限界によって真の値とは違う結果になることがあります。
p Integer.sqrt(10**46) #=> 100000000000000000000000 p Math.sqrt(10**46).floor #=> 99999999999999991611392 (!)[SEE_ALSO] Math?.sqrt
- [PARAM]