Foros del Web » Programando para Internet » Python »

[Ejercicio] Numeros amistosos

Estas en el tema de [Ejercicio] Numeros amistosos en el foro de Python en Foros del Web. [URL="http://progra.usm.cl/apunte/ejercicios/1/numeros-amistosos.html"]http://progra.usm.cl/apunte/ejercicios/1/numeros-amistosos.html[/URL] Tengo que hacer un programa que me permita calcular el par de numeros amistosos entre el intervalo [1000,1500], pero no logro que me funcione. ...
  #1 (permalink)  
Antiguo 29/09/2011, 16:45
 
Fecha de Ingreso: septiembre-2011
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 3
[Ejercicio] Numeros amistosos

[URL="http://progra.usm.cl/apunte/ejercicios/1/numeros-amistosos.html"]http://progra.usm.cl/apunte/ejercicios/1/numeros-amistosos.html[/URL]
Tengo que hacer un programa que me permita calcular el par de numeros amistosos entre el intervalo [1000,1500], pero no logro que me funcione.
Algun consejo?

Código Python:
Ver original
  1. suma = 0
  2. suma2 = 0
  3. for n1 in range (1000,1501):
  4.     for n12 in range (1,(n1/2)+1):
  5.         if n1%n12==0:
  6.             suma = suma + n12
  7.         for n2 in range (1000,1501):
  8.             for n21 in range (1,(n2/2)+1):
  9.                 if n2%n21==0:
  10.                     suma2 = suma2 + n21
  11.                 if suma==n2 and suma2==n1:
  12.                     print n1,n2


Gracias!
__________________
"Porque nada se...
quiero saberlo todo"
  #2 (permalink)  
Antiguo 29/09/2011, 18:17
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: [Ejercicio] Numeros amistosos

Código:
para n en el rango de 1000 a 1500:
    saca los divisores de n, sumalos y asignalos a m (obviamente checa si m esta en el rango)
    saca los divisiones de m, sumalos y asignalos a N
    compara si N es igual a n de ser así son numeros amistosos
  #3 (permalink)  
Antiguo 29/09/2011, 18:46
 
Fecha de Ingreso: septiembre-2011
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 3
Respuesta: [Ejercicio] Numeros amistosos

Muchas gracias razpetia, me funciono perfectamente, de echo, le hize el cambio para que calculara muchos numeros más...
Código Python:
Ver original
  1. suma3 = 0
  2. for n1 in range (1,100001):
  3.     suma = 0
  4.     suma2 = 0
  5.     for n12 in range (1,(n1/2)+1):
  6.         if n1%n12==0:
  7.             suma = suma + n12
  8.     if suma<100001:
  9.         for n21 in range (1,(suma/2)+1):
  10.             if suma%n21==0:
  11.                 suma2 = suma2 + n21
  12.     if n1==suma2:
  13.         if n1<suma:
  14.             suma3 = suma3 + 1
  15.             print suma3,"=>",n1,suma

Exitos!!!
__________________
"Porque nada se...
quiero saberlo todo"

Etiquetas: numeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:43.