# rational.rb

--> Rational

## 関数:

`Rational(a, b)`

  Rational オブジェクトを生成する。

## Integer

rational を require すると Integer のメソッドが以下のように再定義される。

### メソッド

`self / other`

  除算。

  - otherが有理数(Rational)ならば、有理数(Rational)を返す。
  - otherがそれ以外なら、オリジナルの`/'と同じ。つまり、 other が整数(Integer)ならば、整数(Integer)を(整除)、浮動小数(Float)ならば、 浮動小数(Float)を返す。

  ただし、いずれも、other == 0 の時は、ZeroDivisionErrorとなる。

`self ** other`

  べき乗。

  - otherが正または0の整数(Integer)ならば、整数(Integer)を返す。
  - otherが負の整数(Integer)ならば、有理数(Rational)を返す。
  - otherが有理数(Rational)や浮動小数(Float)ならば、浮動小数(Float)を返す。
`power!(other)`

  オリジナルの`**'と同じ。otherが正または0の整数(Integer)ならば、 整数(Integer)を、それ以外なら、浮動小数(Float)を返す。

`to_r`

  対応する有理数(Rational)を返す。Rational(self, 1) と同じ。

`gcd(n)`

  self と n の最大公約数を Fixnum として返す。self や n が負の場合は、正に 変換してから計算する。

`lcm(n)`

  self と n の最小公倍数を返す。self や n が負の場合は、正に 変換してから計算する。

`gcdlcm(int)`

  最大公約数と最小公倍数の配列 [self.gcd, self.lcm] を返します。

links: [Integer] [Rational] [ZeroDivisionError]
reverse links: [mathn.rb] [添付ライブラリ]