sábado, 25 de julio de 2026

Ingresar dos números y mostrar sus divisores comunes en Python

Código del ejercicio:

a = int(input("Ingresar el primer número: "))
b = int(input("Ingresar el segundo número: "))
if a >= 0 and b >= 0:
  c = 1
  mayor = 0
  if a > b:
    mayor = a
  else:
    mayor = b
  print("Divisores comunes: ", end="")
  while c < mayor:
    if a % c == 0 and b % c == 0:
      print(c, end=" ")
    c += 1

Definición de los códigos del ejercicio:

lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
int() --> convierte el valor especificado en un número entero.
input() --> permite obtener texto escrito por teclado.
and --> devuelve True si ambos operandos son verdaderos.
>= --> el operador mayor que o igual ( >= ) devuelve true si el operando izquierdo es mayor o igual que el operando derecho, y en false caso contrario.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
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.
while --> el bucle while evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera.
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.
append() --> agrega un elemento al final de la lista.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
and --> devuelve True si ambos operandos son verdaderos.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
% --> el operador de modulo ( % ) devuelve el resto de la división.
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'.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
set() --> se utiliza para almacenar varios elementos en una sola variable y no tiene elementos duplicados.
print() --> imprime un mensaje en la pantalla.
, --> concatena variables de cadena.

Explicación del Código:

Este programa solicita dos números enteros positivos y muestra los divisores que ambos tienen en común.

Código

a = int(input("Ingresar el primer número: "))
b = int(input("Ingresar el segundo número: "))

if a >= 0 and b >= 0:
    c = 1
    mayor = 0

    if a > b:
        mayor = a
    else:
        mayor = b

    print("Divisores comunes: ", end="")

    while c < mayor:
        if a % c == 0 and b % c == 0:
            print(c, end=" ")
        c += 1

Explicación simple de cada línea

Código Explicación
a = int(input("Ingresar el primer número: ")) Solicita al usuario el primer número y lo guarda como un número entero.
b = int(input("Ingresar el segundo número: ")) Solicita el segundo número y lo almacena como entero.
if a >= 0 and b >= 0: Verifica que ambos números sean positivos o iguales a cero antes de continuar.
c = 1 Inicializa un contador que servirá para probar los posibles divisores.
mayor = 0 Crea una variable donde se guardará el número mayor.
if a > b: Comprueba cuál de los dos números es mayor.
mayor = a Guarda el primer número como el mayor.
else: Se ejecuta cuando el segundo número es mayor o ambos son iguales.
mayor = b Guarda el segundo número como el mayor.
print("Divisores comunes: ", end="") Muestra el mensaje "Divisores comunes:" sin hacer un salto de línea.
while c < mayor: Repite el proceso desde 1 hasta antes del número mayor.
if a % c == 0 and b % c == 0: Comprueba si el número c divide exactamente a ambos números. Si el residuo es 0 en los dos casos, entonces es un divisor común.
print(c, end=" ") Imprime el divisor común encontrado en la misma línea.
c += 1 Aumenta el contador en 1 para revisar el siguiente posible divisor.

Resumen

El programa realiza los siguientes pasos:

  1. Pide dos números al usuario.
  2. Verifica que ambos sean positivos.
  3. Determina cuál de los dos es el mayor.
  4. Recorre todos los números desde 1 hasta antes del número mayor.
  5. Comprueba cuáles dividen exactamente a ambos números.
  6. Muestra todos los divisores comunes encontrados.

Código del ejercicio: Otra forma de hacer

a = int(input("Ingresar el primer número: "))
b = int(input("Ingresar el segundo número: "))
divisores_a = []
divisores_b = []
for c in range(1, a):
  if a % c == 0:
    divisores_a.append(c)
for c in range(1, b):
  if b % c == 0:
    divisores_b.append(c)
interseccion = list(set(divisores_a) & set(divisores_b))
print("Divisores comunes:", interseccion)

Definición de los códigos del ejercicio:

lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
int() --> convierte el valor especificado en un número entero.
input() --> permite obtener texto escrito por teclado.
and --> devuelve True si ambos operandos son verdaderos.
>= --> el operador mayor que o igual ( >= ) devuelve true si el operando izquierdo es mayor o igual que el operando derecho, y en false caso contrario.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
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.
while --> el bucle while evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera.
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.
append() --> agrega un elemento al final de la lista.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
and --> devuelve True si ambos operandos son verdaderos.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
% --> el operador de modulo ( % ) devuelve el resto de la división.
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'.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
set() --> se utiliza para almacenar varios elementos en una sola variable y no tiene elementos duplicados.
print() --> imprime un mensaje en la pantalla.
, --> concatena variables de cadena.

Explicación del Código:

Código

a = int(input("Ingresar el primer número: "))
b = int(input("Ingresar el segundo número: "))

divisores_a = []
divisores_b = []

for c in range(1, a):
    if a % c == 0:
        divisores_a.append(c)

for c in range(1, b):
    if b % c == 0:
        divisores_b.append(c)

interseccion = list(set(divisores_a) & set(divisores_b))

print("Divisores comunes:", interseccion)

Explicación paso a paso

1. Solicitar los números

input() pide al usuario que ingrese dos números. La función int() convierte el texto ingresado en un número entero. Los valores se guardan en las variables a y b.

2. Crear listas vacías

Se crean las listas divisores_a y divisores_b. Estas listas servirán para almacenar los divisores de cada número.

3. Buscar los divisores del primer número

El ciclo for recorre los números desde 1 hasta uno menos que a.

La condición:

a % c == 0

comprueba si el número c divide exactamente a a. Si el residuo es 0, significa que es un divisor y se agrega a la lista usando append().

4. Buscar los divisores del segundo número

Se repite el mismo procedimiento para el segundo número. Cada divisor encontrado se guarda en la lista divisores_b.

5. Encontrar los divisores comunes

interseccion = list(set(divisores_a) & set(divisores_b))

Esta línea realiza varias funciones:

  • set(divisores_a): convierte la lista de divisores del primer número en un conjunto.
  • set(divisores_b): convierte la lista de divisores del segundo número en otro conjunto.
  • &: obtiene únicamente los elementos que aparecen en ambos conjuntos.
  • list(): convierte nuevamente el resultado en una lista.

El resultado se guarda en la variable interseccion.

6. Mostrar el resultado

print("Divisores comunes:", interseccion)

La función print() muestra en pantalla el texto "Divisores comunes:" junto con la lista de divisores que tienen ambos números en común.

Resumen

Este programa solicita dos números enteros, calcula los divisores de cada uno mediante ciclos for, guarda esos divisores en listas, encuentra los divisores que ambos números tienen en común utilizando conjuntos (set) y finalmente muestra el resultado en pantalla.

No hay comentarios.:

Publicar un comentario

Crear una calculadora para calcular el factorial de un número, invertir número, ordenar lista en forma ascendente en Python

Código del ejercicio: while True :     print ( f "Elige una opción a realizar con estos números: \n \     Presiona 1 para ...

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