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
- Actualmente estoy en USACO Gold, pero apenas puedo resolver nada. ¿Qué debo hacer para ser más competente? ¿Dominar el oro es solo una cuestión de aprender toneladas de algoritmos, o necesita más que eso?
- ¿Qué es una explicación intuitiva de IDA * (profundización iterativa A *)?
- ¿Cuál es la mejor estructura y algoritmo de datos para encontrar un valor máximo dentro de un subconjunto de una población de datos que satisfaga alguna condición de rango?
- ¿Qué tan difícil es implementar un sitio web de reserva de boletos con un volumen máximo de 1 millón de boletos por hora durante ciertas horas del día?
- ¿Cómo funciona la transformación cuántica de Fourier?
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á.