jueves, 19 de enero de 2012

Calculando factores primos con Sympy



Sympy es una mega-librería de matemáticas para python, en ella podrás encontrar funciones para integrar simbólicamente, generadores de polinomios especiales, rutinas para resolver analítica y numéricamente ecuaciones diferenciales, y mucho más.

En nuestro caso estaremos interesados en la sub-libreria de teoría de números ntheory. En esta podremos encontrar entre otras cosas una función que calcula todos los factores primos de un número.


Ejemplo 1:
Como objetivo inicial fijémonos como meta calcular los factores primos del número 13195.

El programa iniciaría de la siguiente forma

# -*- coding: utf-8 -*-
from sympy.ntheory import primefactors as pf
# hemos cargado la función que calcula los factores primos de un número.
print pf(13195)
# Programa Finalizado


El resultado final será la lista:

[5, 7, 13, 29]



para aumentar la complejidad de nuestro programa, resolvamos el siguiente problema.

Problema 1:
Consideremos el siguiente número entero:

374874837483748738478374837473

calcular la suma de todos sus factores primos.

Solución: El preámbulo del programa anterior nos servirá mucho para esta tarea.

# -*- coding: utf-8 -*-
from sympy.ntheory import primefactors as pf
L=pf(374874837483748738478374837473)
suma=0
for i in L:
    suma=suma+i
print “El resultado es: ”, suma
# fin del programa


El resultado final fue:

51906840377


Solo me queda decirles ... Que se diviertan :-)


Si te ha gustado este artículo, compártelo en facebook, twitter, google+, coméntalo, envíalo por correo, y si quieres mas información, pídela. Si no te gusta, critícalo. Tu tienes completo control sobre los contenidos de este blog.