Factoriza un gran número de manera eficiente con gmp

Necesito obtener todos los factores primos de grandes números que pueden llegar fácilmente a 1k bits. Los números son prácticamente aleatorios, por lo que no debería ser difícil. ¿Cómo lo hago de manera eficiente? Yo uso C ++ con la biblioteca GMP.

EDITAR: Supongo que todos ustedes me entendieron mal.
Lo que quiero decir con un número primo es obtener todos los factores primos del número.
Perdón por mi inglés, en mi idioma prima y factor son los mismos :)

aclaración (de la otra publicación de OP):

Lo que necesito es una forma de factorizar de manera eficiente (encontrar factores primos de un número) números grandes (pueden llegar a 2048 bits) usando C ++ y GMP (lib de precesión múltiple de Gnu) o menos preferiblemente de cualquier otra manera. Los números son prácticamente aleatorios, por lo que hay pocas posibilidades de que sea difícil de factorizar, e incluso si el número es difícil de factorizar, puedo volver a tirar el número (aunque no puedo elegir).

Respuestas a la pregunta(4)

Su respuesta a la pregunta