关闭

欧几里德算法及python脚本实现

标签: python编程算法
229人阅读 评论(0) 收藏 举报
分类:
欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数。其计算原理依赖于下面的定理:

定理: gcd(a, b) = gcd(b, a mod b)

定理证明:
  a可以表示成a = kb + r, 则r = a mod b
 (1) 先假设d是a, b的一个公约数, 则有  d|a, d|b, 而r = a - kb, 等式两边同时除以d,则r/d=a/d - kb/d。因为d是a,b的一个公约数,则r也可以被d整除,因此d|r。所以,d是(b, a mod b)的公约数。

 (2)反过来,如果d是(b,a mod b)的公约数,则d|b, d|r, 由于a = kb + r,因此d也是(a, b)的公约数。
 (3) 综上所述,(a, b) 和(a, a mod b)的公约数是一样的,其最大公约数也必然相等,得证。

欧几里德的Python语言描述为:


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:82062次
    • 积分:1240
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:12篇
    • 译文:0篇
    • 评论:2条
    文章存档
    最新评论