#! /usr/bin/env python
# -*- coding: utf-8 -*-

#========================================================
# divisores.py - Obtiene los divisores y factores primos
# de un número
#--------------------------------------------------------
# FJA - fja@neocipres.com              Octubre de 2016
#========================================================

import sys


__uso__ = '''
            ======================================
              divisores <número entero>
            ======================================\n'''

divisores = []
factores = []


if len(sys.argv) == 1:
    print __uso__
    sys.exit(0)
else:
    narg = sys.argv[1]

try:
    n = abs(int(narg))
except ValueError, e:
    print '\n\t'
    print '\tError: ', e, sys.exc_info()[0], '\n'
    print __uso__
    sys.exit(0)

for x in range(1, n + 1):
    if n % x == 0:
        divisores.append(x)

print '\n Divisores de %s: ' % narg, divisores, '\n'
print ' Son %d divisores' % len(divisores)
while 1:
    for x in range(2, n + 1):
        if n % x == 0:
            factores.append(x)
            n = n / x
            break
    if n == 1:
        break

cadf = u''
factores = factores[::-1]  # Invertimos la lista de factores
for f in factores:
    cadf = cadf + str(f) + u'·'
cadf = cadf + '1'
print '\n Factores de %s: ' % narg, cadf, '\n'
if len(factores) == 1:
    print '\t El número %s es primo \n' % narg