第一次做RSA题,去找题解,发现得用上gmpy2库,下好之后去了解了一下gmpy2库的常用函数
注:一般是用这个库来解决一些大整数之间的各种计算,下面的例子都是举的常规数
1、求两整数的最大公因数
import gmpy2
#求整数a、b的最大公因数
a = gmpy2.gcd(3,12)
print(a)
输出:3
2、判断一个数是否为素数
import gmpy2
#判断一个数是否为素数
a = gmpy2.is_prime(5)
print(a)
输出:True
3、判断一个数是否为偶/奇数
import gmpy2
#判断一个数是否为偶数
a = gmpy2.is_even(4)
##判断一个数是否为奇数
b = gmpy2.is_odd(4)
print(a)
print(b)
输出:True False
4、求一个数开x次方
import gmpy2
#求一个数开x次方
a = gmpy2.iroot(8,3)
print(a)
输出:(mpz(2), True)
5、初始化大整数(暂时还不晓得有什么意义)
#初始化大整数
a = gmpy2.mpz(234324324234)
print(a)
输出:234324324234
6、求一个数模x的逆元y
import gmpy2
#求一个数模x的逆元y
#如3*4 = 1 mod 11
a = gmpy2.invert(3,11)
print(a)
输出:4
7、求一个整数的x次幂模y取余(主要用于RSA中)
import gmpy2
#求一个整数的x次幂模y取余
#如3^3 mod 4(即27%4)
a = gmpy2.powmod(3,3,4)
print(a)
输出:3