Ejemplo de práctica de Python 14

Python 100例100 ejemplos de Python

Problema:Descomponer un entero positivo en factores primos. Por ejemplo: ingresa 90, imprime 90=2*3*3*5.

Análisis del programa:Para descomponer n en factores primos, primero se debe encontrar el número primo más pequeño k, y luego seguir los siguientes pasos:
(1) Si este número primo es exactamente igual a n, entonces el proceso de descomposición en factores primos ha terminado, solo hay que imprimirlo.
(2) Si n<>k, pero n es divisible por k, entonces se debe imprimir el valor de k, y usar el cociente de n dividido por k como el nuevo entero positivo n, repetir el primer paso.
(3) Si n no es divisible por k, usar k+1 como valor de k, y repetir el primer paso.

Código fuente del programa:

Ejemplo (Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- def reduceNum(n): print '{} = '.format(n), if not isinstance(n, int) or n <= 0 : print '¡Ingrese un número correcto!' exit(0) elif n in [1] : print '{}'.format(n) while n not in [1] : # El bucle asegura la recursión for index in xrange(2, n + 1) : if n % index == 0: n /= index # n es igual a n/index if n == 1: print index else : # index debe ser un número primo print '{} *'.format(index), break reduceNum(90) reduceNum(100)

Ejemplo (Python 3.0+)

#!/usr/bin/python3 def reduceNum(n): print ('{} = '.format(n), end=" ") if not isinstance(n, int) or n <= 0 : print ('¡Ingrese un número correcto!') exit(0) elif n in [1] : print ('{}'.format(n)) while n not in [1] : # El bucle asegura la recursión for index in range(2, n + 1) : if n % index == 0: n //= index # n es igual a n//index if n == 1: print (index ) else : # index debe ser un número primo print ('{} *'.format(index), end=" ") break reduceNum(90) reduceNum(100)

El resultado de salida del ejemplo anterior es:

90 =  2 * 3 * 3 * 5
100 =  2 * 2 * 5 * 5

Python 100例100 ejemplos de Python

Otras extensiones