module DifferenceOfSquares exposing (..)


squareOfSum : Int -> Int
squareOfSum n =
    let
        sum =
            n * (n + 1) // 2
    in
        sum * sum


sumOfSquares : Int -> Int
sumOfSquares n =
    List.sum (List.map (\m -> m * m) [0..n])


difference : Int -> Int
difference n =
    squareOfSum n - sumOfSquares n