Python - números chulos

   
Vista:

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

números chulos

Publicado por José María info@g5server.com (59 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

números chulos

Publicado por kip (204 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