module HeavyStuff where -------------------------------------------------------------------------------- -- * Fibonacci numbers. fib :: Int -> Int fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2) -------------------------------------------------------------------------------- -- * Euler's formula for primes. euler :: Int -> Int euler n = sum $ map primes [1 .. n - 1] where primes :: Int -> Int primes n = length $ filter (isRel n) [1 .. n - 1] isRel :: Int -> Int -> Bool isRel n x = gcd n x == 1 -------------------------------------------------------------------------------- -- ** Task 1: Just the one. mFib :: Int mFib = fib 38 mEuler :: Int mEuler = euler 5300 -------------------------------------------------------------------------------- -- ** Task 2: More more more! mFibs :: [Int] mFibs = map fib [37,38,39,40] mEulers :: [Int] mEulers = map euler [7600, 7600]