2022-10-15 22:17:04 +00:00
|
|
|
# Função principal
|
2022-10-14 22:03:25 +00:00
|
|
|
def main():
|
|
|
|
n = int(input('Introduza um número: '))
|
|
|
|
div_list_array = divList(n)
|
2022-10-15 22:17:04 +00:00
|
|
|
|
|
|
|
# Transforma a lista obtida numa string para imprimir
|
|
|
|
div_list = ""
|
2022-10-14 22:03:25 +00:00
|
|
|
for div in div_list_array:
|
2022-10-15 22:17:04 +00:00
|
|
|
div_list += (str(div) + ', ')
|
|
|
|
div_list = div_list[:len(div_list)-2]
|
|
|
|
# ---
|
|
|
|
|
2022-10-14 22:03:25 +00:00
|
|
|
print("""
|
|
|
|
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Número introduzido: {}
|
|
|
|
|
|
|
|
Lista de divisores:
|
|
|
|
{}
|
|
|
|
|
|
|
|
Este é um número {}.
|
|
|
|
|
|
|
|
--------------------
|
|
|
|
|
2022-10-15 22:17:04 +00:00
|
|
|
""".format(n, div_list, category(n, div_list_array)))
|
|
|
|
|
|
|
|
# Obtém uma lista com todos os dividores de um número
|
|
|
|
def divList(n):
|
|
|
|
divs = []
|
|
|
|
for x in range(1, n):
|
|
|
|
if n % x == 0:
|
|
|
|
divs.append(x)
|
|
|
|
return divs
|
|
|
|
|
|
|
|
# Obtém a categoria de um número
|
|
|
|
def category(n, divs):
|
|
|
|
total = 0
|
|
|
|
for div in divs:
|
|
|
|
total += div
|
|
|
|
if total < n: return 'deficiente'
|
|
|
|
if total == n: return 'perfeito'
|
|
|
|
if total > n: return 'abundante'
|
2022-10-14 22:03:25 +00:00
|
|
|
|
|
|
|
main()
|