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 是较合理的数值,更多次的判别可以减小合数被返
//回为概率素数的可能。
下载地址:
####中文版(部分)
####英文版(全部)