# 99 questions/Solutions/36

< 99 questions | Solutions

Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

(**) Determine the prime factors of a given positive integer.

Construct a list containing the prime factors and their multiplicity.

```
prime_factors_mult n = map swap $ encode $ primeFactors n
where swap (x,y) = (y,x)
```

using `primeFactors` from problem 35 to generate the list of prime factors in ascending order, and `encode` from problem 10 to compress this list to a list of numbers paired with their multiplicity.

Without relying on `encode` from problem 10, but using `group` from `Data.List`:

```
prime_factors_mult = map encode . group . primeFactors
where encode xs = (head xs, length xs)
```