def largest_prime_factor_naive(number):
    """
    Let the given number be n and let k = 2, 3, 4, 5, ... .

    For each k, if it is a factor of n then we divide n by k and completely divide out each k before moving to the next k.

    It can be seen that when k is a factor it will necessarily be prime, as all smaller factors have been removed,
    and the final result of this process will be n = 1.
    """
    factor = 2
    factors = []
    while number > 1:
        if number % factor == 0:
            factors.append(factor)
            number = number // factor  # Remainder guarenteed to be zero
            while number % factor == 0:
                number = number // factor  # Remainder guarenteed to be zero
        factor += 1
    return factors