module PrimeFactors (primeFactors) where primeFactors :: Integer -> [Integer] primeFactors 1 = [] primeFactors x = primeFactors' x 2 where primeFactors' x n | x < n = [] | x `mod` n == 0 && x > n = [n] ++ primeFactors' (x `div` n, n + 1) | otherwise = [x]