Números amigos y perfectos en Python
Enviado por boom beach tan • 7 de Noviembre de 2021 • Tarea • 584 Palabras (3 Páginas) • 399 Visitas
#numeros amigos
def esAmigo(a,b):
suma_a: int=0
suma_b= int=0
for i in range(1,a):
if a%i==0:
suma_a+=i
for j in range(1,b):
if b%j==0:
suma_b+=j
if suma_a.__eq__(b)and suma_b.__eq__(a):
return "son amigosss!!!!"
else:
return "no son amigos :("
#parte 1 que verifica si son amigos 2 numeros
def numeros_amigos():
print("Vamos a verificar si 2 numeros son amigos, comencemos!!!\n")
x = 0
y = 0
try:# tuve que implementar try catch ya que no funcionaba si es que se ingresaba un valor nulo o vacio
while x<=1 or y<=1 or x==None or y==None:#while que se repite en caso de que se equivoque de numero
x = int(input("ingrese un numero"))
y = int(input("ingrese otro numero"))
if x<=1 or y<=1 or x==None or y==None:
print("numeros fuera de los requerimientos porfavor ingrese otros numeros")
except: print("error")
print("los numeros {} y {} ".format(x,y), esAmigo(x,y))
#parte 2 donde se indica que numeros perfectos hay entre 1 y 10000
lista_perfectos=[]
def numeros_perfectos():
print("Vamos a verificar numeros perfectos entre 1 y 10000, comencemos!!!\n")
for x in range(1,10000):
suma_x = 0
print("calculando...",x)
for i in range(1,x):
if x%i==0:
suma_x+=i
#print("la suma es {} y el num es {}".format(suma_x,x))
if suma_x==x:
lista_perfectos.append(suma_x)
print("los numeros perfectos entre 1 y 10000 son \n",lista_perfectos)
input("\npresione enter para continuar")
#comienzo del programa inicializacion del menu
respuesta= True
while respuesta:
print("""
-------------------Menu tarea numero 1---------------------------
1.ir a comprobar si 2 numeros son amigos
2.ir a donde se indica que numeros perfectos hay entre 1 y 10000
3.salir del programa
""")
respuesta=input("¿que le gustaria hacer? ")
print("respuesta es ",respuesta)
if respuesta=="1":
numeros_amigos()
elif respuesta=="2":
numeros_perfectos()
elif respuesta=="3":
print("\n saliendooo...")
respuesta=False
...