Pues ni idea la verdad , igual es que mis librerias como las compile para mi ordenador no sirven para el tuyo...
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
#include <stdio.h>
#include <gmp.h>
int main()
{
mpz_t num, resultado, mod,suma; //Variables
mpz_inits(resultado,mod,suma,NULL);//Resultado suma y mod inicializado a 0;
mpz_init_set_ui(num, 2); //Inicializo num a 2
mpz_pow_ui(resultado, num, 1000); // 2^1000
gmp_printf("Resultado: %Zd\n\n", resultado); //Imprimo 2^1000, y el resultado es correcto
while(mpz_cmp_ui(resultado, 0) > 0)
{//BUCLE NO INFINITO
mpz_add_ui(suma,suma,mpz_mod_ui(mod, resultado, 10)); //suma = suma + el resto de dividir resultado entre 10
//printf("SUMA :%d \n", suma); Probando la suma...
mpz_tdiv_q_ui(resultado,resultado, 10);//Realizamos una division entre 10 y no redondeamos, lo que sobra lo truncamos.
//mpz_set_ui(resultado, mpz_cdiv_ui(resultado, 10)); Esto está mal , la función mpz_cdiv_ui devuelve el resto de la division!!
gmp_printf("Suma: %Zd\n\n", suma); //Además de que el bucle es infinito, he comprobado que la suma la hace mal.
//getchar();
}
gmp_printf("Suma final: %Zd\n\n", suma);
mpz_clears(resultado,num,mod,suma,NULL); //Liberamos memoria
getchar();
return 0;
}
#include <stdio.h>
int main()
{
printf("El tamano de un unsigned long int en tu maquina es de: %d bytes",sizeof(unsigned long int));
getchar();
return 0;
}
#include <stdio.h>
#include <gmp.h>
unsigned long int suma=0, i=0;
//Lo pongo como variable global porque si lo meto en main() me dice "Suma dígitos.exe dejó de funcionar. Windows está buscando una solución"
int main()
{
mpz_t num, resultado, mod; //Variables
mpz_inits(resultado,mod,NULL);//Resultado y mod inicializado a 0;
mpz_init_set_ui(num, 2); //Inicializo num a 2
mpz_pow_ui(resultado, num, 1000); // 2^1000
gmp_printf("Resultado: %Zd\n\n", resultado); //Imprimo 2^1000, y el resultado es correcto
while(mpz_cmp_ui(resultado, 0) > 0)
{//BUCLE NO INFINITO
suma += mpz_mod_ui(mod, resultado, 10); //suma = suma + el resto de dividir resultado entre 10
//printf("SUMA :%d \n", suma); Probando la suma...
mpz_tdiv_q_ui(resultado,resultado, 10);//Realizamos una division entre 10 y no redondeamos, lo que sobra lo truncamos.
//mpz_set_ui(resultado, mpz_cdiv_ui(resultado, 10)); Esto está mal , la función mpz_cdiv_ui devuelve el resto de la division!!
gmp_printf("Resultado dividiendo: %Zd\n\n", resultado);
printf("%lu\n", suma); //Además de que el bucle es infinito, he comprobado que la suma la hace mal.
}
printf("Suma: %lu\n", suma);
mpz_clears(resultado,num,mod,NULL); //Liberamos memoria
getchar();
return 0;
}
mpz_cdiv_ui(resultado, 10)
mpz_init_set_ui (num, 2);