本文源自http://zh.wikipedia.org/wiki/User:Gqqnb/笔记/计算机安全与数论。
本文已经完整解释了有关问题,若对扩展欧几里得算法不甚理解,可参考《扩展欧几里得算法是干什么用的?》。
通常谈到[[最大公因数]]时, 我们都会提到一个非常基本的事实: 给予二整数 a 与 b, 必存在有整数 x 与 y 使得ax + by = gcd(a,b)。[1]
有两个数a,b,对它们进行辗转相除法,可得它们的最大公约数——这是众所周知的。然后,收集辗转相除法中产生的式子,倒回去,可以得到ax+by=gcd(a,b)的整数解。
例如,用类似[[辗转相除法]],求47x+30y=1的整数解。
* 47=30*1+17
* 30=17*1+13
* 17=13*1+4
* 13=4*3+1
然后把它们改写成“余数等于”的形式
* 17=47*1+30*(-1) //式1
* 13=30*1+17*(-1) //式2
* 4=17*1+