编程语言
首页 > 编程语言> > gmpy2 python 扩展库的用法笔记

gmpy2 python 扩展库的用法笔记

作者:互联网

gmpy2 python 扩展库的用法笔记

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

	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初始化一个高精度的复数

2. 其它的常用语法

	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/(虽然看不懂官方文档)

标签:初始化,gmpy2,gcd,高精度,python,用法,e1,e2
来源: https://blog.csdn.net/m0_52842062/article/details/117852175