martes, 18 de agosto de 2026

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 en Python

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:

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":
            int_veces = 0
    veces += 1

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 veces y le asigna el valor 1. Sirve para controlar las repeticiones del programa.
  • while veces <= 3: repite el programa mientras el valor de veces sea 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 True cuando 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 S en s.
  • .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

Encontrar todas las posiciones de un carácter x de una cadena en Python

Código del ejercicio: s = input ( "Ingresar texto: " ) x = input ( "Ingresar carácter: " ) i = 0 while i...

Copyright © Ejercicios de programación. Todos los derechos reservados. ❤️