¿Cuál es el algoritmo más eficiente en el tiempo para encontrar el número de divisores de un número?

Si puede encontrar rápidamente un factor primo, puede encontrarlos rápidamente y luego, aún más rápidamente, contar el número de divisores.

La rapidez con la que actualmente podemos encontrar un factor depende de si se ha construido o no una computadora cuántica adecuadamente compleja. Si se construyera uno, podríamos factorizar un número compuesto de n dígitos en el peor de los casos [matemática] O (n ^ {2+ \ varepsilon}) [/ matemática] usando el algoritmo de Shor. Alternativamente, podríamos demostrar constructivamente que P contiene BQP y usar la construcción para crear un algoritmo clásico de Shor.

Dado que ninguna de esas cosas es probable que suceda pronto, estamos atascados con nuestros algoritmos de factorización clásicos de última generación. Actualmente, el método más rápido para números muy grandes es el Tamiz de campo de número general, que se ejecuta en aproximadamente [matemáticas] e ^ {n ^ {1/3 *}} [/ matemáticas] en el mismo número de n dígitos. Existen métodos más rápidos para números más pequeños: http://stackoverflow.com/a/2274520

Desafortunadamente, no hay forma de contar el número de divisores de un número sin factorizarlo (al menos parcialmente), por lo que es lo mejor que obtendrá.

Primero necesitas factorizar el número.

Entonces será en forma de ^ kb ^ l ….. etc.

el número de factores de divisores será br (k + 1) (l + 1) … así sucesivamente para todas las potencias de los factores primos …

tomemos ejemplo de 72

72 = 2 ^ 3 × 3 ^ 2

Número de factores- (3 + 1) (2 + 1) = 4 × 3 = 12

Estos factores son 1,2,3,4,6,8,9,12,18,24,36,72

Por lo tanto demostrado