DESARROLLAR UN ALGORITMO QUE DETERMINE SI UN NÚMERO ES DIVISIBLE POR OTRO NÚMERO DENTRO DE UN DETERMINADO RANGO COMO SE VE A CONTINUACIÓN
DIVISIBILIDAD EN UN RANGO
--> Ingrese límite inferior: 2
--> Ingrese límite superior: 15
--> Ingrese el número de divisibilidad: 3
############ RESULTADOS ############
--> Rango de números: 2 3 4 5 6 7 8 9 10 11 12 13 14 15
--> Números no divisibles: 2 4 5 7 8 10 11 13 14
--> Números divisibles: 3 6 9 12 15 y la suma de los # divisibles es: 45
- Validar el ingreso de datos, L. Inferior < L. Superior
- Después de usar tres veces el programa debe de preguntar si desea continuar
Código del ejercicio:
Definición de los códigos del ejercicio:
while --> el bucle while evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera.<= --> el operador menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
print() --> imprime un mensaje en la pantalla.
while True --> se ejecuta sin ninguna condición hasta que la instrucción break se ejecuta dentro del ciclo.
break --> se utiliza para romper un for bucle o un while bucle.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
int() --> convierte el valor especificado en un número entero.
input() --> permite obtener texto escrito por teclado.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
\n --> es el carácter de salto de línea y se usa para indicar el fin de una línea de texto y el inicio de una línea nueva.
end --> el parámetro end se usa para agregar una cadena a la salida de print() cuando se realiza la impresión de una declaración. Pero, ¿alguna vez se preguntó por qué después de cada declaración de impresión, el cursor se mueve a la siguiente línea? Esto se debe a que la declaración de impresión viene con un valor predeterminado de parámetro final que es '\n'.
lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
for --> el bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario, …) y ejecutar un bloque de código.
in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
range --> es un tipo que se utiliza para representar una secuencia inmutable de números. Uno de sus principales usos es junto a la sentencia for, para definir un bucle sobre el que se itera un número determinado de veces.
% --> el operador de modulo ( % ) devuelve el resto de la división.
append() --> agrega un elemento al final de la lista.
, --> concatena variables de cadena.
sum() --> devuelve un número, la suma de todos los elementos en un iterable.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
lower() --> devuelve una cadena donde todos los caracteres están en minúsculas.
strip() --> elimina cualquier carácter inicial (espacios al principio) y final (espacios al final) (el espacio es el carácter inicial predeterminado para eliminar).
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
Explicación del Código:
Explicación sencilla del algoritmo paso a paso
📌 ¿Qué hace el programa?
El programa solicita al usuario un límite inferior, un límite superior y un número de divisibilidad. Después recorre todos los números del rango y determina cuáles son divisibles por el número indicado.
También muestra los números que no son divisibles y calcula la suma de todos los números divisibles.
🐍 Código Python
veces = 1
while veces <= 3:
print("\nDIVISIBILIDAD EN UN RANGO")
while True:
limite_inferior = int(input("--> Ingrese límite inferior: "))
limite_superior = int(input("--> Ingrese límite superior: "))
if limite_inferior < limite_superior:
break
print("El número inferior debe ser menor que el número superior")
numero_divisibilidad = int(input("--> Ingrese el número de divisibilidad: "))
print("\n", "#" * 12, "RESULTADOS", "#" * 12, "\n")
lista_divisibles, lista_no_divisibles = [], []
print("--> Rango de números: ", end=" ")
for numero in range(limite_inferior, limite_superior + 1):
print(numero, end=" ")
if numero % numero_divisibilidad:
lista_no_divisibles.append(numero)
else:
lista_divisibles.append(numero)
print("\n--> Números no divisibles: ", *lista_no_divisibles)
print("--> Números divisibles: ", *lista_divisibles, end=" ")
print("y la suma de los # divisibles es: ",
sum(lista_divisibles))
if veces == 3:
if input("\n\n¿Desea continuar? (S/N): ").lower().strip() == "s":
veces = 0
veces += 1
🔎 Explicación de cada código
-
veces = 1:
crea una variable llamada
vecesy le asigna el valor 1. Sirve para controlar las repeticiones del programa. -
while veces <= 3:
repite el programa mientras el valor de
vecessea menor o igual que 3. - print(...): muestra en pantalla el título del programa.
-
while True:
crea un ciclo que continúa ejecutándose hasta encontrar
una instrucción
break. - limite_inferior = int(input(...)): pide al usuario el primer número del rango y lo convierte a un número entero.
- limite_superior = int(input(...)): pide al usuario el último número del rango.
- if limite_inferior < limite_superior: comprueba que el límite inferior sea menor que el superior.
-
break:
termina el
while Truecuando los límites son correctos. - numero_divisibilidad: almacena el número que se utilizará para comprobar la divisibilidad.
- lista_divisibles = []: crea una lista vacía donde se guardarán los números divisibles.
- lista_no_divisibles = []: crea una lista vacía para guardar los números que no son divisibles.
- for numero in range(...): recorre todos los números desde el límite inferior hasta el límite superior.
-
numero % numero_divisibilidad:
utiliza el operador
%, que obtiene el resto de una división. - if numero % numero_divisibilidad: comprueba si el resto es diferente de cero. Si es diferente de cero, el número no es divisible.
- lista_no_divisibles.append(numero): agrega el número a la lista de números no divisibles.
- else: se ejecuta cuando el resto de la división es cero.
- lista_divisibles.append(numero): agrega el número a la lista de números divisibles.
- sum(lista_divisibles): suma todos los números que fueron guardados en la lista de divisibles.
- if veces == 3: comprueba si el programa llegó a su tercera ejecución.
-
.lower():
convierte la respuesta del usuario a letras minúsculas.
Por ejemplo, transforma
Sens. - .strip(): elimina espacios innecesarios al principio y al final de la respuesta.
- veces += 1: aumenta el contador en 1 para controlar las repeticiones.
➗ ¿Cómo funciona el operador %?
El operador % obtiene el resto de una división.
Para saber si un número es divisible por otro, el resto debe ser
igual a 0.
| Operación | Resto | Resultado |
|---|---|---|
| 6 % 3 | 0 | 6 es divisible entre 3 |
| 7 % 3 | 1 | 7 no es divisible entre 3 |
| 9 % 3 | 0 | 9 es divisible entre 3 |
📝 Ejemplo
Supongamos que el usuario introduce:
Límite inferior: 1
Límite superior: 10
Número de divisibilidad: 3
El programa revisará los números del 1 al 10.
Números divisibles: 3, 6, 9
Números no divisibles: 1, 2, 4, 5, 7, 8, 10
Suma de los divisibles: 3 + 6 + 9 = 18
💡 Resumen
El programa recibe un rango y un número. Después revisa cada
número del rango utilizando el operador %.
Si el resto es 0, el número es divisible y se
guarda en lista_divisibles. Si el resto es diferente
de 0, se guarda en lista_no_divisibles.
Finalmente, el programa muestra ambas listas y calcula la suma de los números divisibles.
No hay comentarios.:
Publicar un comentario