標準ライブラリなので秒で書ける、Rubyで最大公約数、最小公倍数

バージョン

  • 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で取得するのはめっちゃ簡単なことがわかりましたね。
便利!

タイトルとURLをコピーしました