欢迎光临散文网 会员登陆 & 注册

Python编程算法【三十三】最大公约数

2023-01-03 18:17 作者:SPC编程爱好者  | 我要投稿

【案例内容】

求任意两个正整数的最大公约数(Greatest Common Divisor,GCD)。


【解题思路】

求解最大公约数可以使用欧几里德算法,也就是常说的辗转相除法。它是用较大的数(当被除数)去除较小的数(当除数)。若除得尽,则较小的数,即除数,就是这两个数的最大公约数。若除不尽,就先求出它们的余数,再拿刚才较小的数去除这个余数,反复操作直到除得尽为止,则此时的除数就是它们的最大公约数。
举例来说,要求20和12的最大公约数,先用较大的数20去除较小的数12,即20÷12,余数8;由于有余数,再用12÷8,余数4;继续用8÷4,此时除得尽,则4就是20和12的最大公约数。


【Python代码】

传入两个正整数,求出最大公约数

本题采用函数来处理,并且假设传入的第一个数比第二个数大,若除不尽再通过递归函数继续处理,直到除尽为止,整个过程会比较清晰、易懂。不用函数也行,小伙伴们可以自行尝试。

Python编程算法【三十三】最大公约数的评论 (共 条)

分享到微博请遵守国家法律