-- The fraction 49/98 is a curious fraction, as an inexperienced mathematician -- in attempting to simplify it may incorrectly believe that 49/98 = 4/8, which -- is correct, is obtained by cancelling the 9s. -- -- We shall consider fractions like, 30/50 = 3/5, to be trivial examples. -- -- There are exactly four non-trivial examples of this type of fraction, less -- than one in value, and containing two digits in the numerator and -- denominator. -- -- If the product of these four fractions is given in its lowest common terms, -- find the value of the denominator. import Euler main = print $ denominator $ product $ [ n | a <- [1..9] , b <- [1..9] , c <- [1..9] , d <- [1..9] , let x = 10 * a + b , let y = 10 * c + d , let n = x % y , n < 1 , (a == c && b % d == n) || (a == d && b % c == n) || (b == c && a % d == n) || (b == d && a % c == n) ]