GMP常用函数介绍(这里只简单介绍一下整数函数,如需更多请自行阅读手册)

1.初始化函数

mpz_t integ;// 定义
mpz_init (integ)// 初始化,默认值为0

2.赋值函数

//      把op赋值给rop 
void mpz_set (mpz_t rop, mpz_t op) //注意,两个数的类型都是mpz_t
void mpz_set_ui (mpz_t rop, unsigned long int op)
void mpz_set_si (mpz_t rop, signed long int op)
void mpz_set_d (mpz_t rop, double op)//将会舍去op的小数部分

3.初始化赋值函数

mpz_t pie;// 定义
mpz_init_set_str (pie,"3141592653589793238462643383279502884", 10);//其中10表示10进制

4.算术函数

// rop = op1 + op2
void mpz_add (mpz_t rop, mpz_t op1, mpz_t op2)
void mpz_add_ui (mpz_t rop, mpz_t op1, unsigned long int op2)//注意类型

// rop = op1 - op2
void mpz_sub (mpz_t rop, mpz_t op1, mpz_t op2)
void mpz_sub_ui (mpz_t rop, mpz_t op1, unsigned long int op2)//注意类型
void mpz_ui_sub (mpz_t rop, unsigned long int op1, mpz_t op2)//注意类型
// rop = op1 * op2
void mpz_mul (mpz_t rop, mpz_t op1, mpz_t op2)
void mpz_mul_si (mpz_t rop, mpz_t op1, long int op2)
void mpz_mul_ui (mpz_t rop, mpz_t op1, unsigned long int op2)

// q = n / d + r
void mpz_cdiv_q (mpz_t q, mpz_t n, mpz_t d)
void mpz_cdiv_r (mpz_t r, mpz_t n, mpz_t d)
void mpz_cdiv_qr (mpz_t q, mpz_t r, mpz_t n, mpz_t d)

5.指数函数

// rop = base ^ exp
void mpz_pow_ui (mpz_t rop, mpz_t base, unsigned long int exp)
void mpz_ui_pow_ui (mpz_t rop, unsigned long int base,
unsigned long int exp)//注意类型

6.数论函数

int mpz_probab_prime_p (mpz_t n, int reps)
//判断 n 是否为素数,若 n 确定是素数则返回 2,如果 n 是概率素数 (不能完全
//确定) 那么返回 1,或者如果 n 确定是合数那么返回 0。reps 控制这
//样的判别做多少次,5 到 10 是较合理的数值,更多次的判别可以减小合数被返
//回为概率素数的可能。

下载地址:

####​​中文版(部分)​

####​​英文版(全部)​


Linux gmp类库的简单使用(二)_赋值函数