# Ejemplo, Conjuntos. Intersección

### Recordar la propiedad intersección de conjuntos

### Intersección

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

![](https://156834076-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M3CsDMenpAVuNy6kou5%2F-M4BM52MU1NbDnb43Vqi%2F-M4BUqQFCY8KMFwSeRPw%2FImagen1conjuntos.jpg?alt=media\&token=72e75ba0-5de7-4da8-87a5-cd10cd9584ce)

Si se aplica la propiedad intersección quedaría

![](https://156834076-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M3CsDMenpAVuNy6kou5%2F-M4BM52MU1NbDnb43Vqi%2F-M4BUtwqsgtjqVtk62I-%2Fimagen%20conjuntos.jpg?alt=media\&token=b679f91f-da84-4b14-8ce7-7213beb40641)

## 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

![](https://156834076-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M3CsDMenpAVuNy6kou5%2F-M4BM52MU1NbDnb43Vqi%2F-M4BUxjfMulhGK_-5K-B%2Fdiagramadivisores.jpg?alt=media\&token=f803f01a-3fad-42b5-8523-259ce14dec18)

## Resumen

### Código común

```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]
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

```python
conjunto=set(diviso_num1) & set(diviso_num2)
```

### Código utilizando listas

```python
​if i in diviso_num1 and i in diviso_num2:
                    if i not in comunes:
                        comunes.append(i)
```

{% hint style="info" %}
Si pudiera elegir, ¿como resolvería el ejercicio, con **listas** o **conjuntos**?
{% endhint %}

### 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

```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")
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")
```

## Ejecutarlo

{% embed url="<https://colab.research.google.com/drive/1u1j6WL5wAGPDTSO4fhPNtpgHFwHwW_LZ>" %}
