¿Cuál es el mejor enfoque para calcular el factor primo más grande de un número?
Estoy pensando que lo más eficiente sería lo siguiente:
- Encuentra el número primo más bajo que se divide limpiamente
- Compruebe si el resultado de la división es primo
- Si no, encuentre el siguiente más bajo
- Ir a 2.
Estoy basando esta suposición en que es más fácil calcular los factores primos pequeños. ¿Es esto correcto? ¿Qué otros enfoques debería considerar?
Editar: ahora me he dado cuenta de que mi enfoque es inútil si hay más de 2 factores primos en juego, ya que el paso 2 falla cuando el resultado es producto de otros dos números primos, por lo tanto, se necesita un algoritmo recursivo.
Edite nuevamente: Y ahora me he dado cuenta de que esto todavía funciona, porque el último número primo encontrado tiene que ser el más alto, por lo tanto, cualquier prueba adicional del resultado no primo del paso 2 daría como resultado un primo menor.
1.
encuentre cualquier número que se divida claramente (para i = 2 a int (sqr (num))) 2.
divida por ese número (num = num / i) y repita hasta que no se encuentre nada en el intervalo de 1. 3.
num es el factor más importante