def FibonacciSequence(i):
    # Revisa que el parametro es calido
    if isinstance(i, int) and i >= 0:
        # Inicializa el cache
        cache = []
        fib_number = 0
        cache.append(0)
        cache.append(1)
        cache_size = len(cache)

        for _ in range(cache_size, i):
            # siempre suma los dos previos valores
            fib_number = sum(cache[-2:])
            cache.append(fib_number)

        # regresa el i-esimo numero de la serie de Fibobacci
        # return cache[i]
        # regresa todo lo calculado
        return cache

    # No es un parametro valido, se lanza una excepcion
    else:
        raise ValueError("Invalid input, please enter a positive integer")


print(FibonacciSequence(100))

# val  99 ==> 135301852344706746049
# val  100 ==> 218922995834555169026
