您的位置:首页 > 其它

欧几里得算法

2016-01-24 23:40 253 查看
问题:求整数a和b的最大公约数

算法:欧几里得算法(又称辗转相除法),gcd(a,b) = gcd(a,a%b)

证明:

假设 a = b*q + r,p是a和b的一个公约数,那么

==> a = p*m

==> b = p*n

==> p*m = p*n*q +r

==> r = p*m - p*n*q

= p(m - n*q)

==> p也是r的公约数

同理,设t是b和r的公约数,也可得出t是a的公约数

==> (a,b)和(b,r)具有相同的公约数

==> gcd(a,b) = gcd(a,a%b)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: