"""Desarrolle una aplicación Python en la que se pida un valor entero, este deberá estar en el rango de 0 a 20, se propone categorizarlo de la siguiente manera:

- Menor que 5: Aceptable
- Entre 5 y 8: En el promedio
- Sobre 8 hasta 14: Bajo
- Por encima de 14: Muy bajo

Los demás valores se deben descartar."""
def categoria(vr):
    resultado = ""
    if vr < 0 or vr > 20:
        resultado = "Por fuera del rango"
    elif vr < 5:
        resultado = "Aceptable"
    elif vr >= 5 and vr <= 8:
        resultado = "En el promedio"
    elif vr <= 14:
        resultado = "Bajo"
    else:
        resultado = "Muy bajo"
    return resultado

"""
Para un software matemático se requiere que usted escriba una función que permita calcular de manera iterativa el factorial de un número, esto consiste en multiplicar de manera sucesiva este valor entero y positivo con los valores anteriores hasta llegar a la unidad. Ejemplo: Factorial de 5 = 5 * 4 * 3 * 2 * 1 = 120, haga una prueba leyendo un valor, enviarlo a la función y que esta después de hacer las operaciones, devuelva el resultado.
"""

def factorial(n): # n = 3 /// f = 1
    if n < 0:
        return "Error"
    else:
        f = 1
        #for i in range(1, n + 1)
        for i in range(n, 0, -1): # n: donde, 1: terminar, -1: paso
            f *= i
    return f

"""
La NASA ha identificado que tres objetos celestes se alinean en cierto punto con x, y y z años cíclicos, haga un programa que pregunte el año en que se alinearon, los años que tardarán en volver a alinearse y en base a esto, halle la próxima vez en que los tres volverán a estar alineados. Clave: usar M.C.M para conocer el valor.
""" HIDDEN FIGURES

def mcm(x, y, z): # x = 9, y = 12, z = 15 = 180
    mayor = x
    if y > mayor:
        mayor = y
    if z > mayor:
        mayor = z
    while mayor % x != 0 and mayor % y != 0 and mayor % z != 0:
        mayor += 1
    return mayor
anio = 1983
plazo = mcm(12, 15, 9)
sig = anio + plazo
print("Proxima alineación: %s" %(sig))

"""Haga una rutina en la cual se ingrese un valor entero menor que 1024, este representa un valor en base 10, haga que esa rutina convierta dicho valor a base binaria. Devuélvalo a la aplicación principal.
23 (10) = 10111 (2)

23 / 2
 1  11 / 2
     1   5 / 2
         1   2 / 2
             0   1 / 2
                 1   0

"""








