¿Por qué el método Rho de Pollard no es rápido?

Intuitivamente, un algoritmo opera en tiempo polinómico si se ejecuta en varios pasos que son polinómicos en la longitud de la entrada. Cuando ejecutamos un algoritmo de teoría de números, la longitud de la entrada [matemática] n [/ matemática] es el logaritmo de [matemática] n [/ matemática] (en cualquier base; esto solo cambia las cosas a una constante), ya que la entrada se pasa a la computadora como una expansión en alguna base. Por ejemplo, si se requieren [math] n [/ math] pasos para ejecutar un algoritmo en el número [math] n [/ math], entonces dicho algoritmo realmente se ejecuta en tiempo exponencial en términos de la longitud de la entrada.

En el caso del método Rho de Pollard para el logaritmo discreto, el factor primo más pequeño [matemático] p [/ matemático] de [matemático] n [/ matemático] generalmente tiene un tamaño que es exponencial en términos de la longitud de [matemático] n [ / math], por lo que un tiempo de ejecución de [math] O (p ^ {0.5}) [/ math] no es polinómico en la longitud de la entrada.