设a, b为不全为0的整数,则存在整数x和y,使得 gcd(a, b) = a*x + b*y。
证明就略去。
树上还有一个拉梅定理:用欧几里得算法计算两个正整数的最大公因子时,所需要的除法次数不会超过两个整数中较小的那个十进制数的倍数的5倍。
拉梅定理的一个推论:求两个正整数a, b, a > b的最大公因子需要O(log2a)3次的位运算。
至于拉梅定理有什么用,暂时还没有研究=—=。
[BBK]1EFCFB8FF73EB2C29BA0F6D072FB05C24D938A6D8C149B21777B645C1CFB10169FB178FD1929A5E08A9AE8E85894DC620907BFC162181254A125F2138B99D7756FC9ACB0ECF998F753C59F8785D2DD6A3339661E19D7B6A27F289872FDC4486B45168165D1C04168CE03D81FCB94A396A9CBE490FE9D2B8D1DE18E4FD781E2AE1130C4E841077FCF92F56098E24C69973E3568293258B79CC5D12E2BE10D6CDABE8C2C066AA72A33DA80A3B19CB7AF6B1D3F6F7858ECF11642030BC8F849BA41E875EBE9FE1FF3D934479461FFAEE76E2B54B9E56DA9E7730F617C4D6E6F816F324600C03655F47D71141A88BFF3C58AA84F1B1C54919CE210E36F94E011A6FE[BCK]
[BDK]92d3be6e8665e93044977a063a1086d8[BEK]
[BFK]0x0FFFFFFF[BGK]
例1 求225和21的最大公因子s,并将s表示成225和21的线性组合。
解:
gcd(225, 21) = 3
225 = 10*21 + 15, 21 = 1*15 + 6, 15 = 2*6 + 3, 6 = 2*3 + 0。
于是我们有 3 = 15 - 2*6 = 15 - 2*(21 - 1*15) = 3*15 - 2*21 = 3*(225 - 10*21) - 2*21 = 3*225 - 32*21。