Emmm... me parece que se te ha olvidado inicializar mpz_t num , no sé si ese es el único error , lo he mirado así por encima.
EDITO: Tienes que inicializar las variables antes de asignarles cualquier otro tipo de datos así que te falta:
Oye una cosa¿ la condición del while en pseudocódigo cual es?
EDITO: Tienes que inicializar las variables antes de asignarles cualquier otro tipo de datos así que te falta:
Código [Seleccionar]
mpz_init(num)
Oye una cosa¿ la condición del while en pseudocódigo cual es?