Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------------------------------------------------------------------------------------------------------------------------------------
- '''
- NÚMEROS ALEGRES
- Considere que un número natural se denomina ALEGRE si la SUMA de sus factores propios da como resultado el mismo número.
- Recuerde que, los divisores propios de un número no incluyen al número como divisor de si mismo.
- Así por ejemplo, 6 es alegre ya que sus divisores propios son 1, 2 y 3, cuya suma es 6.
- Escriba un programa PYTHON que permita determinar si deferentes números enteros son o no ALEGRES. La entrada de datos debe finalizar al leer un 0, el cual no debe ser procesado, y sólo se deben procesar números positivos.
- La salida del programa considera escribir cada número procesado y si el número es alegre el mensaje "ES ALEGRE" y en caso contrario el mensaje "NO ES ALEGRE", tal como se muestra en los ejemplos.
- Al finalizar el procesamiento se escribe un resumen: la cantidad de números que sí es alegre, la cantidad que no lo son y los respectivos porcentajes (redondeado al entero), tal como se muestra en los ejemplos.
- Si no hubiera datos a analizar se escribe el mensaje "NO hubo números mayores a cero".
- IMPORTANTE : para resolver este problema debe utilizar los contenidos vistos en el módulo (no puede utilizar listas, tuplas, conjuntos, diccionarios o cadenas)
- '''
- ------------------------------------------------------------------------------------------------------------------------------------
- totalAlegres = 0
- totalNoAlegres = 0
- while True :
- numeroN = int(input())
- if numeroN == 0 :
- break
- if numeroN < 0 :
- continue
- sumaDivisores = 0
- for num in range (1,numeroN) :
- if numeroN % num == 0 :
- sumaDivisores = sumaDivisores + num
- if numeroN == sumaDivisores :
- print(numeroN,"ES ALEGRE")
- totalAlegres = totalAlegres + 1
- else :
- print(numeroN,"NO ES ALEGRE")
- totalNoAlegres = totalNoAlegres + 1
- total = totalAlegres + totalNoAlegres
- if total == 0 :
- print("NO hubo números mayores a cero")
- else :
- porcSI = (totalAlegres/total) * 100
- porcNO = (totalNoAlegres/total) * 100
- print()
- print("RESUMEN")
- print("*******")
- print("total de números procesados =",total)
- print("ALEGRES")
- print(" total =",totalAlegres)
- print(" porcentaje =",round(porcSI),"%")
- print("NO ALEGRES")
- print(" total =",totalNoAlegres)
- print(" porcentaje =",round(porcNO),"%")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement