#! /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