首页 > 数据库 > 数据库开发技术 > 用辗转相除法求两个正整数的最大公约数

初中的时候我们学过用辗转相除法求最大公约数,今天用Python来实现这个功能。

二、代码实现原理讲解

step1: 将两数中大的那个数放在m中,小的放在n中。
step2: 求出m被n除后的余数r。
step3: 若余数为0则执行步骤(7),否则执行步骤(4)。
step4: 把除数作为新的被除数;把余数作为新的除数。
step5: 求出新的余数r。
step6: 重复步骤(3)到(5)。
step7: 输出n,n即为最大公约数。

m,n = map(int,input("请输入两个数:").split(",")) #输入两个数用逗号分开if m<n: #如果m比n小,互换m和n的位置m,n = n,mr = m%n #求出m除n的余数while r: #如果余数不为0,进行循环m=n #把n赋值给mn=r #把r赋值给nr = m%n #求余数print(f"最大公约数是{n}") #输出n,即为最大公约数
代码解析:
while: 如果余数不为0,则把n赋值给m,r赋值给n,算出新的余数,直到余数变为0,程序结束,得到的n即为最大公约数。
print: 打印出最大公约数。
实例一:
124668,3456668 #输入两个数得到结果:
最大公约数是4实例二:
128,48 #输入两个数得到结果:
最大公约数是16
你可能感兴趣:
喜欢这篇文章
就请点个 “ 在看”吧
原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。