Project Euler 71

http://projecteuler.net/index.php?section=problems&id=71


分数を使ってみた。Haskellでの分数の使い方はこんな感じ。

import Ratio

a = 2 % 4           -- 1 % 2
n = numerator a     -- 1
d = denominator a   -- 2
b = 1 / a           -- 2 % 1

分母は最後の7つだけ調べればよい。

import Ratio

nearest_frac a b d = (div (d * a - 1) b) % d
n = 10^6
main = print (numerator (foldr max 0 (map (nearest_frac 3 7) [n-6..n])))