Python - números chulos

 
Vista:
sin imagen de perfil

números chulos

Publicado por david (2 intervenciones) el 05/11/2017 20:52:29
1 - Los numeros chulos (2 puntos)
Se dice que un número es chulo si es igual a la suma de todos sus divisores, excluido el mismo. Por ejemplo, 28 es un numero chulo, pues sus divisores (excepto el mismo) son 1, 2, 4, 7, 14, que suman 28. Define una función que retorne True si un número es chulo y False si no lo es.



DESESPERADOOOOO. COMO SE HACEE??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de José María
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

números chulos

Publicado por José María (245 intervenciones) el 05/11/2017 22:41:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def es_chulo(n):
    divisores = []
    suma = 0
    llevo = 1
    while llevo < n:
        if n%llevo == 0:
            divisores.append(llevo)
            suma += llevo
 
        llevo += 1
 
    print 'Divisores: %s' % divisores
    print 'Su suma: %s' % suma
    if suma == n:
        print u'%s es un número chulo' % n
    else:
        print u'%s NO es un número chulo' % n
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

números chulos

Publicado por kip (257 intervenciones) el 05/11/2017 23:01:35
Hola, ya te han dado una buena respuesta para que estudies, aqui te dejo dos opciones mas, una con estructuras de control y otra mas enfocada en funciones de Python

1
2
3
4
5
6
7
8
def isChulo(n):
    divs = []
    n2 = n - 1
    while n2:
        if not n % n2:
            divs.append(n2)
        n2 -= 1
    return sum(divs) == n

1
2
3
def isChulo(n):
    divs = list(filter(lambda v: not n % v, range(1, n)))
    return sum(divs) == n
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar