import Data.Ratio numOfFrac bound = sum $ map (\d -> let nLower = ceiling (d % 3) nUpper = floor (d % 2) in length [n | n <- [nLower..nUpper], let ratio = (n % d), ratio > (1 % 3), ratio < (1 % 2), denominator ratio == d]) [2..bound] main = print $ numOfFrac 12000