Muchas gracias por corregir esa función, con la que había puesto yo tenía que crear la variable resultado también porque sino me daba error.
Sí, lo que quiero poner en el while() es que mientras resultado > 0, haga todo eso.
Saludos.
EDITO: También puse esa condición y no salía...
EDITO 2: Creo que el error no es la condición, sino lo de dentro, ya que he probado a poner:
while(mpz_cmp_ui(resultado, 0) !=0)
{//BUCLE INFINITO
suma += mpz_mod_ui(mod, resultado, 10); //suma = suma + el resto de dividir resultado entre 10
mpz_set_ui(resultado, mpz_cdiv_ui(resultado, 10)); //Dividimos resultado entre 10
gmp_printf("%Zd\n", resultado); //Además de que el bucle es infinito, he comprobado que la suma la hace mal.
}
Y no da nunca resultado/10...