简介
大整数运算库。
官网地址:https://gmplib.org/
使用
初始化
mpz_t a, b, c;
mpz_init(a);
mpz_init_set_str(b, "2000000000000000000000000000", 10);
mpz_init_set_str(c, "3000000000000000000000000000", 10);
输出
gmp_printf("%Zd\n", b);
加法
mpz_add(a, b, c);
减法
mpz_sub(a, b, c);
乘法
mpz_mul(a, b, c);
除法
/*求商,向上取整*/
mpz_cdiv_q (a, b, c);
/*求余数,由于求商是向上取整,所以余数为0或者负数*/
mpz_cdiv_r (a, b, c);
/*求商,向下取整*/
mpz_fdiv_q (a, b, c);
/*求余数,由于求商是向下取整,所以余数为0或者正数*/
mpz_fdiv_r (a, b, c);
比较
/*b大于c,返回1;b等于c,返回0;b小于c,返回-1*/
mpz_cmp(b, c);
求平方根
/*结果向下取整*/
mpz_sqrt(a, b);
最大公约数
mpz_gcd(a, b, c);
判断是否是一个质数的次幂
mpz_perfect_power_p(b);
幂运算
mpz_pow_ui(a, b, 10);