What is the intention of the program below?
```
def get_factors(n):
    if n == 1:
        return []

    i = 2
    while i < (int(n**0.5) + 1):
        if n % i == 0:
            return [i] + get_factors(n // i)
        i += 1

    return [n]
``` There should be exactly 5 paragraphs separated by the markdown divider: ***.
user