Etiquetas

domingo, 27 de febrero de 2011

FMcP (II) Facotrizar números enteros

Buenas, aqui les traigo la segunda entrega de la serie FMcP, que en realidad es la primera entrada útil.

Presupongo que, si no son conocimientos de Python, por lo menos tendréis conocimientos de programación en general. Aún así, intentaré no usar tecnicismos sin explicarlos o poner enlaces a otras páginas donde los expliquen.

En este fascículo presentaré una forma de sacar los factores de un número entero (15=3*5, por ejemplo). Es un algoritmo muy simple, pero es una buena base para proyectos más grandes relacionados con las matemáticas.

Sin más dilación, aquí está el algoritmo.

def FactorizarNum(numero):
    if numero == 0:return 0     #Controla los casos especiales 0, 1 y 2
    if numero == 1:return 1
    if numero == 2:return 2
    lista_fac = []
    for x in range(2, (numero/2)+1): #Comprueba cada NUMERO (no factor) entre '2' y '(numero/2)'
        while numero % x == 0: #Mira los factores posibles uno por uno
            numero /= x        #Modifica la variable numero para que el loop no se haga infinito
            lista_fac.append(x)#Anade el factor a la lista
    return lista_fac

No hay comentarios:

Publicar un comentario