質問の小学校5年生算数の問題をRubyで解いてみました。(^_^;
数学的に解くと、最大公約数が4なので、3つの数字は4の倍数になります。30以下なので、その候補は、
4,8,12,16,20,24,28
ですが、最小公倍数が120=2^3 * 3 * 5なので、約数にならない16(=2^4)と28(=2^4 * 7)は除外できます。よって、候補は次のように絞られます。
4,8,12,20,24
最小公倍数120=2^3 * 3 * 5の5の供給源となる20は、3つの数の中に必ず含まれなければならず、3の供給源として、12または24(どちらか一方、あるいは、両方)を含んでいないといけません。
後は、以上を踏まえて、場合分けして、検証作業でしょうか。(^_^;
●GcdAndLcm.rb
# GcdAndLcm.rb for x in 1..30 do for y in x..30 do for z in y.. 30 do if x.gcd(y).gcd(z)==4 && x.lcm(y).lcm(z)==120 then print "%d,%d,%d\n" %[x,y,z] end end end end
●実行結果
4,20,24 8,12,20 8,20,24 12,20,24 20,20,24 20,24,24
- 作者: アンク
- 出版社/メーカー: 翔泳社
- 発売日: 2008/09/04
- メディア: 大型本
- 購入: 1人 クリック: 18回
- この商品を含むブログ (12件) を見る
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2013/06/04
- メディア: 単行本
- この商品を含むブログ (33件) を見る
- 作者: るびきち
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2009/05/25
- メディア: 単行本
- 購入: 24人 クリック: 263回
- この商品を含むブログ (72件) を見る