# -*- coding: utf-8 -*-
"""Auxiliar 4.ipynb

Automatically generated by Colaboratory.

Original file is located at
    https://colab.research.google.com/drive/13oqX7cqMk-qBZsP_vuftn0goc_F6xsPw

# Auxiliar 4
## Profesores : Alejandro Hevia, Bárbara Poblete
### Auxiliares: Albani Olivieri, Lucas Torrealba, Monserrat Prado, Nadia Decar, Nelson Marambio, Ricardo Valdivia

####P1 Calculo de Divisores

Para esta pregunta se le solicita, crear una función que cacule la cantidad de divisores que tienen un numero entero, para esto se le pide que la realice utilizando **obligatoriamente** al menos una variable por omisión.
"""

# Receta
def divisores(...):

"""#### P2 Polinomios de Hermite

Escriba un programa que calcule el polinomio de Hermite según el grado y punto que se le
indique.
Todos los polinomios de Hermine de orden n > 2 se pueden expresar de la siguiente forma


$$H_n(x) = 2x · H_{n−1}(x) − 2(n − 1)H_{n−2}(x)$$

con $H_0(x) = 1$ y $H_1(x) = 2x$
Los primeros serán de la forma:

- $H_0(x)=1$
- $H_1(x)=2x$
- $H_2(x)=4x^2 - 2$
- $H_3(x)=8x^3 - 12x$
- $H_4(x)=16x^4 - 48 x^2 + 12$
- $H_5(x)=32x^5 - 160x^3 + 120x$



"""

# Receta

def polinomioDeHermite(grado, punto):

"""####P3 Mayor dato

Escriba una funcion recursiva, que devuelva el mayor de un lista de números que termina con un número negativo.
`Hint: Utilice variables por omisión` 

La función debe establecer un diálogo como el que se muestra en el siguiente 
ejemplo:

```python
>>>mayor()
n°? 2
n°? 3
n°? 1
n°? -1    # fin de los datos
3        # resultado de la función
```
Para esta función no debe realizar test.
"""

# Receta

def mayor():

"""####P4 Potencias de Dos
Escribir la función recursiva potenciasDe2 que use la función potencia para calcular potencias de 2 enteras >=0 a través del siguiente diálogo:

```python
>>>potenciasDe2()
potencia? 4
resultado = 16
potencia? 10
resultado = 1024
potencia? 0
resultado = 1
…
potencia?-1 (Una potencia negativa termina el programa)
``` 

Función potencias vista en clases:

```python
# potencia: num int -> num
# calcula el valor de una potencia de base elevado a exponente
# para exponentes enteros positivos
# ejemplo: potencia (4,5) debe dar 1024
def potencia(base, exponente):
    if exponente == 0:
        return 1
    else:
        return base*(potencia(base, exponente-1))

# test
assert potencia(4,5) == 1024
assert potencia(2,4) == 16
assert potencia(-1,5) == -1
assert potencia(3,0) == 1
```


Para esta función no debe realizar Test

"""

# Receta

def potenciasDe2():