2021SC@SDUSC
本章综述
大整数ZZ类主要实现了任意长度大整数表示、最大公因数、Jacobi符号和素性检验。笔者将通过逐个分析ZZ.cpp源代码中函数的形式来一步步向读者展示NTL是如何实现上述功能的。
计算最大公因数(gcd)
(1)数学基础:(广义)欧几里得除法
知识储备(定理,公立,公式)
·如果 b|a ,则(a,b) = b;
·如果a,b为两整数,则(a,b) = (b,a)
·如果 p为素数,a为整数,且p ∤ a,则a和p互素
证明:设(a,p) = d ,则有d|p,且d|a 。因为p是素数,所以d = 1或者d = p
对于d = p ,和p ∤ a矛盾,所以d = 1,即,(a,p) = 1.结论成立
·设b为任意正整数,(0,b) = b
·设a,b,c≠0且为整数。若c|a,c|b,则c|(sa+tb)。(若c|a,c|b,则c整除a,b的任意线性组合)
证明:s*a+t*b = s*θ*c+t*β*
c = c*(s* θ