module Exercise_6 where import Data.Ratio import Data.Maybe import Data.List {-WETT-} traceFractran :: [Rational] -> Integer -> [Integer] traceFractran fs n = n:if null nfs then nfs else fs `traceFractran` head nfs where ni = fromIntegral n nfs = [numerator $ f*ni | f <- fs, 1 == denominator (f*ni)] {-TTEW-} -- traceFractran :: [Rational] -> Integer -> [Integer] -- traceFractran fs n = n:if isNothing mf then [] else traceFractran fs (numerator $ ni*fromJust mf) -- where ni = fromIntegral n -- mf = find (\f -> 1 == denominator $ f*ni) fs -- -- isPowerOfTwo 1 = True -- isPowerOfTwo n = n `mod` 2 == 0 && isPowerOfTwo (div n 2) -- primeprog = [17%91 ,78%85 ,19%51 ,23%38 ,29%33 ,77%29 ,95%23 ,77%19 ,1%17 , 11%13 ,13%11 ,15%14 ,15%2 ,55%1]