viernes, 20 de mayo de 2016

Más información sobre la factorización de números

Existe una función con esta forma:
n será siempre un número primo.
f(1,n) = 1 para todo n
f(x,n) = 1 if x mod n != 0 else f(x/n,n)*n


O representada de otra forma (aumentando x pero avanzando en vertical):
f(x,2)          f(x,3)          f(x,5)
1  2             1 1  3         1 1 1 1  5
1  4             1 1  3         1 1 1 1  5
1  2             1 1  9         1 1 1 1  5
1  8             1 1  3         1 1 1 1  5
1  2             1 1  3         1 1 1 1 25
1  4             1 1  9         1 1 1 1  5
1  2             1 1  3         1 1 1 1  5
1 16             1 1  3         1 1 1 1  5
1  2             1 1 27         1 1 1 1  5
1  4             1 1  3         1 1 1 1 25


Que coinciden con los divisores del número en cuestión.

Si a alguien se le ocurre alguna forma rápida de calcular esta función (o familia de funciones), evitando la recursividad, se podrá factorizar cualquier número entero de forma muy rápida.

Copyleft Ender. El presente artículo no tiene finalidad informativa, de creación de opinión pública o de entretenimiento. Tiene como finalidad principal, la enseñanza y la divulgación de experiencias, proyectos, pensamientos y conocimientos del autor. Se permite la copia textual, la traducción y la distribución de este artículo entero en cualquier medio, a condición de que este aviso sea conservado. Se permite la cita. El autor no reclamará ninguna cantidad por el ejercicio de las dos autorizaciones anteriores. No autorizo a ninguna Entidad de Derechos de Autor a reclamar cantidad alguna en mi nombre por el ejercicio de los dos derechos anteriores.

No hay comentarios:

Publicar un comentario