Es una operación que contiene los elementos comunes o ( repetidos) a los conjuntos de partida o iniciales.
Conjunto de elementos comunes de A que también pertenecen a B
Si se aplica la propiedad intersección quedaría
Enunciado
Visualizar los divisores comunes de dos números enteros, y mayores que cero. Utilizar conjuntos y Listas.
Análisis:
Preguntar al usuario los dos números y que estos sean positivos.
Almacenar los divisores de ambos números.
Visualizar los divisores comunes.
Diagrama
Resumen
Código común
def Pedirdato(mensaje):
cierto=True
while cierto:
try:
cantidad=int(input(mensaje))
if cantidad >0:
cierto=False
else:
print("Dato no válido")
except:
print("Tecleaste un valor diferente a un entero")
return cantidad
print("Inicio")
diviso_num1=[]
diviso_num2=[]
#Pedir los números
num1=Pedirdato("Dame el primer número====>")
num2=Pedirdato("Dame el segundo número===>")
#Cálculo de los divisores
if num1 >num2:
mayor=num1
else:
mayor=num2
#Obtener los divisores de ambos números
for i in range(1,mayor+1):
if num1%i==0:
diviso_num1+=[i]
if num2%i==0:
diviso_num2+=[i]
print("Los divisores del {} son: {}".format(num1,diviso_num1))
print("Los divisores del {} son: {}:".format(num2,diviso_num2))
print("Los divisores coumunes son: {}".format(conjunto))
Código utilizando conjunto: intersección
conjunto=set(diviso_num1) & set(diviso_num2)
Código utilizando listas
if i in diviso_num1 and i in diviso_num2:
if i not in comunes:
comunes.append(i)
Si pudiera elegir, ¿como resolvería el ejercicio, con listas o conjuntos?
Código completo Conjuntos
## Código completo Conjuntos
````python
def Pedirdato(mensaje):
cierto=True
while cierto:
try:
cantidad=int(input(mensaje))
if cantidad >0:
cierto=False
else:
print("Dato no válido")
except:
print("Tecleaste un valor diferente a un entero")
return cantidad
print("Inicio")
diviso_num1=[]
diviso_num2=[]
#Pedir los números
num1=Pedirdato("Dame el primer número====>")
num2=Pedirdato("Dame el segundo número===>")
#Cálculo de los divisores
if num1 >num2:
mayor=num1
else:
mayor=num2
#Obtener los divisores de ambos números
for i in range(1,mayor+1):
if num1%i==0:
diviso_num1+=[i]
if num2%i==0:
diviso_num2+=[i]
#Obtener los valores comunes
conjunto=set(diviso_num1) & set(diviso_num2)
#Visualizar datos
print("Los divisores del {} son: {}".format(num1,diviso_num1))
print("Los divisores del {} son: {}:".format(num2,diviso_num2))
print("Los divisores comunes son: {}".format(conjunto))
Código utilizando listas
def Pedirdato(mensaje):
cierto=True
while cierto:
try:
cantidad=int(input(mensaje))
if cantidad >0:
cierto=False
else:
print("Dato no válido")
except:
print("Tecleaste un valor diferente a un entero")
return cantidad
print("Inicio")
comunes=[]
diviso_num1=[]
diviso_num2=[]
#Pedir los números
num1=Pedirdato("Dame el primer número====>")
num2=Pedirdato("Dame el segundo número===>")
if num1 >num2:
mayor=num1
else:
mayor=num2
#Obtener los divisores de ambos números
for i in range(1,mayor+1):
if num1%i==0:
diviso_num1+=[i]
if num2%i==0:
diviso_num2+=[i]
#Cálculo de divisores
if i in diviso_num1 and i in diviso_num2:
if i not in comunes:
comunes.append(i)
#Visualizar datos
print("Los divisores del {} son: {}".format(num1,diviso_num1))
print("Los divisores del {} son: {}:".format(num2,diviso_num2))
print("Los divisores comunes son: {}".format(comunes))
print("Fin")