windows下的安装配置:https://blog.csdn.net/u012629110/article/details/51220727
使用:
添加头文件:
#include <gmpxx.h>
编译必须链接相应的库:
g++ mycxxprog.cc -lgmpxx -lgmp -o mycxxprog
(1)gmp整数操作:
mpz_class a,b,c;
mpz_gcd (a.get_mpz_t(), b.get_mpz_t(), c.get_mpz_t();
(2)Random state means an algorithm selection and current state data. The C data type for such
objects is gmp_randstate_t.
gmp_randstate_t rstate;
(3)把字符串初始化为gmp大整数:
“int mpz_init_set_str(mpz_t rop, char*str, int base);
释放空间:void mpz_clear(mpz_t rop);//声明了一个变量,在程序的最后一定要释放,不然会报错
加法:void mpz_add(mpz_t rop, mpz_t op1, mpz_t op2); //rop = op1 + op2
减法:void mpz_sub(mpz_t rop, mpz_t op1, mpz_t op2); //rop = op1 - op2
乘法:void mpz_mul(mpz_t rop, mpz_t op1, mpz_t op2); //rop = op1 * op2
除法:void mpz_cdiv_q (mpz_t q, mpz_t n, mpz_t d); //q = n/d,这个有很多种类型,具体的看使用手册
幂运算:void mpz_pow_ui (mpz_t rop, mpz_t base, unsigned long int exp); //rop = base^exp
开方:void mpz_sqrt (mpz_t rop, mpz_t op); //rop = op开方的向下取整