python 中gmpy2的用法的笔记

1.初始化高精度数据类型

1.a=gmpy2.mpz(x) 为变量a赋予高精度的整数(长度可达50位)

2.a=gmpy2.mpq(x) 可以为变量a初始化一个高精度的分数

3.a=gmpy2.mpfr(x) 可以为变量a初始化一个高精度的浮点数

4.a=gmpz2.mpc(x) 可以为变量a初始化一个高精度的复数

2.其他的常用语法

1.对模运算:gmpy2.powmod(a,n,p) #计算a^n mod p

2.对x开n次方根:gmpy.iroot(x,n)

3.欧几里得算法:gmpy2.gcd (a,b) #求最大公约数

​ gmpy2.lcm(a,b) #求最小公倍数

4.扩展欧几里得:gmpy2.gcdext(e1,e2) #求式子e1x+e2y=gcd(e1,e2) 在RSA算法中用该公式来求e的逆元d。

5.逆元运算:gmpy2.invert(a,c) #对a,求b,使a*b=1 mod c

6.检测

​ i.素数检测:gmpy2.is_prime()

​ ii.奇数检测:gmpy2.is_even()

​ iii.偶数检测:gmpy2.is_odd()