Problem 33 (Project Euler) [原文]
49/98は面白い分数である. 「分子・分母の9をキャンセルしたので 49/98 = 4/8 が得られた」と経験を積んでいない数学者が誤って思い込んでしまうかもしれないからである.
我々は 30/50 = 3/5 のようなタイプは自明な例だとする.
1より小さく分子・分母がともに2桁の数になるような自明でない分数は 4個ある.
その4個の分数の積が約分された形で与えられたとき, 分母の値を答えよ
問題にある「自明な例」とは、分子・分母がともに11の倍数の場合も含まれるものと解釈できます。
もっとも4つしか組み合わせはないというヒントがあるので楽です。
下記の2数(m,n)の最大公約数を返す関数"gcm"が活躍しました。
def gcm(m, n)
return gcm(n, m) if m < n
u = m % n
return n if u == 0
gcm(n, u)
end