计算10000!
#include <gmp.h>
int main() {
mpz_t num ;
mpz_t z_i , z_s , z_o ;
mpz_init_set_str(z_i , "1" , 10) ;
mpz_init_set_str(z_s , "1" , 10) ;
mpz_init_set_str(z_o , "1" , 10) ;
// 使用字符串来初始化大整数,10表示进制
int i = 0;
for (i = 0; i < 10000; i++) {
mpz_mul(z_s , z_s , z_i);
// : z_s = z_s*z_i
mpz_add(z_i , z_i , z_o);
}
gmp_printf("%Zd\n",z_s);
mpz_clear(z_i) ;
mpz_clear(z_s) ;
mpz_clear(z_o) ;
// 释放大整数占用空间
return 0;
}
编译: gcc -lgmp demo.c