バージョン
- Ruby 2.7.0
本題
webサービスの開発で最大公約数や最小公倍数を求めたいケースはそんなに無いと思うけど、競技プログラミングでは最大公約数や最小公倍数を求めたいケースはよくある。
競技プログラミングの問題をよくよく考察してみると「あ、これ最大公約数をもとめるだけじゃんか!」みたいなね。
され、そんなときにどのように実装するか?
ユークリッドの互除法のライブラリを実装して置いて、それを使う?
いやいや、Rubyなら標準でメソッドが用意されていますよ。
最大公約数
Integerにはgcd
というメソッドがあるのでこれを使う。
9.gcd(6)
# => 3
最小公倍数
Integerにlcm
というメソッドがあるので、これを使うといいです。
10.lcm(4)
# => 20
最大公約数と最小公倍数を同時に取得する
gcdlcm
は最大公約数と最小公倍数を一度に欲しいという欲張りなあなたにぴったりのメソッドです。
10.gcdlcm(4)
# => [2, 20]
というわけで
最大公約数と最小公倍数をRubyで取得するのはめっちゃ簡単なことがわかりましたね。
便利!