はてなの過去問の1〜100の最小公倍数の質問をRubyで解いてみました。(^_^;
初め、Pythonのlcmを探していましたが、なかなかいいのが見つからなくて、Rubyではすぐに凄いのが見つかりました。やっぱり、Rubyもいいね。o(^-^)o
● lcm.rb
class Array def lcm self.inject{|a,b| a.lcm(b)} end end p (1..100).to_a.lcm
●実行結果
69720375229712477164533808935312303556800
※参考URL
●rubyで複数の値の最小公倍数と最大公約数を求める - simanmanのブログ
●1から10の配列を作るメモ - 牌語備忘録 - pygo
P.S.
ちなみに、Pythonでは、Rubyと違ってlcm()関数がないので自分で作らないといけませんが、下記の参考URLでいいのが見つかりました。これを参考にして、作ってみると、次のようになります。計算結果は同じになりますので省略します。(^_^;
● lcm.py
from functools import reduce # Python3 from fractions import gcd def lcm(numbers): return reduce(lambda x, y: (x*y)//gcd(x,y), numbers, 1) print(lcm(range(1,100+1)))
※参考URL
●RiK0 Tech Temple: Nice functional LCM in Python
- 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一
- 出版社/メーカー: 技術評論社
- 発売日: 2013/08/10
- メディア: 大型本
- この商品を含むブログ (22件) を見る
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2013/06/04
- メディア: 単行本
- この商品を含むブログ (33件) を見る
- 作者: るびきち
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2009/05/25
- メディア: 単行本
- 購入: 24人 クリック: 263回
- この商品を含むブログ (72件) を見る