a. a=gmpy2.mpz(x) 可以为变量a赋予一个高精度的大整数(长度可达50位) b. a=gmpy2.mpq(x) 可以为变量a初始化一个高精度的分数 c. a=gmpy2.mpfr(x) 可以为a初始化一个高精度的浮点数 d. a=gmpy2.mpc(x) 可以为a初始化一个高精度的复数
a. 模幂运算:gmpy2.powmod(a,n,p) #对于给定的整数p,n,a,计算aⁿ mod p b. 对x开n次方根:gmpy2.iroot(x,n) c. 欧几里得算法:gmpy2.gcd(a,b)#求得a,b的最大公约数 gmpy2.lcm(a,b)#求得最小公倍数 d. 扩展欧几里得:gmpy2.gcdext(e1,e2)#求式子e1*x+e2*y=gcd(e1,e2)。在RSA加密算法中利用该公式来求e的逆元d,由于实际上公钥e的选取需要保证gcd(e,ψ(n))=1,所以在这种情况下式子的右边就是1,且通常用下面这个公式来求逆元。 e. 模逆运算:gmpy2.invert(a,c)#对a,求b,使得a*b=1(mod c) f. 检测 i. 素数检测:gmpy2.is_prime() ii. 奇数检测:gmpy2.is_even() iii. 偶数检测:gmpy2.is_odd()
gmpy2扩展库官方文档地址:https://gmpy2.readthedocs.io/en/latest/(虽然看不懂官方文档)