El primer “tutorial” que hago, aunque realmente lo único que hice fue mi mejor intento por documentar y explicar de manera sencilla y simple como hacer el programa. No es lo mejor pero me hace ilusión, así que lo publico igual.
Nota: Si bien este es un tutorial que hace referencia al curso de fundamentos de Python, este tutorial hace uso de funciones, que de manera resumida podríamos decir que las funciones son algo así como los métodos que usábamos en los strings, listas, tuplas, diccionarios. Solamente que ahora somos nosotros los que creamos nuestros propios métodos/funciones según nuestras necesidades.
""" Tutorial """# Cómo hacer un programa para buscar números comprometidos en Python.''' Se define como par de números comprometidos, al par de números tal que, la suma de divisores (excepto el 1 y el mimo número) es igual al otro y viceversa. Por Ejemplo el 48 y el 75\. Los divisores de 48 son 2, 3, 4, 6, 8, 12, 16, 24, que sumados nos da 75\. Así mismo los divisores de 75 son 3, 5, 15, 25, que sumados nos da 48. '''# Primeramente calculamos la suma de divisores de un número.defSuma_divisores(x):
suma = 0
y = 2while y <= x // 2:
if x % y == 0:
suma += y
y += 1return suma
# Buscamos la pareja de un número.defBuscar_pareja(x):
posible_pareja = Suma_divisores(x)
if Suma_divisores(posible_pareja) == x:
return posible_pareja
else:
return-1# Por ultimo haremos una función que nos permita elegir cuantas parejas de números comprometidos queremos encontrar.defBuscar_números_comprometidos(x):
numero_de_parejas = 0
ultimo_encontrado = 0while numero_de_parejas < x:
posible_pareja = Buscar_pareja(ultimo_encontrado + 1)
if posible_pareja != -1and ultimo_encontrado + 1 < posible_pareja:
numero_de_parejas += 1
print(ultimo_encontrado + 1, posible_pareja)
ultimo_encontrado += 1# Listo, ya tenemos un buscador de parejas de números comprometidos.# Ahora escribiremos unas pequeñas lineas de código para poder interactuar con nuestro programa a través de la terminal.
print("Buscador de parejas de números comprometidos")
número_de_parejas_a_buscar = input("Ingresa el número de parejas: ")
if número_de_parejas_a_buscar.isdigit():
Buscar_números_comprometidos(int(número_de_parejas_a_buscar))
else:
print("Opción no valida")