网站建设动态代码,湖北企业模板建站信息,公司食堂设计图,wordpress开发环境辗转相除法数学原理
辗转相除法也称欧几里得算法#xff0c;是用来求两个正整数的最大公约数的算法。接下来我们用实例来解释一下。假如我们需要求12和21的最大公约数#xff0c;用辗转相除法是这样实现的#xff1a; 21 / 12 1 #xff08;余 9#xff09; 12 / 9 1是用来求两个正整数的最大公约数的算法。接下来我们用实例来解释一下。假如我们需要求12和21的最大公约数用辗转相除法是这样实现的 21 / 12 1 余 9 12 / 9 1余 3 9 / 3 3 余 0 至此得到21与12的最大公约数为3注意这里的3是第二个式子取余得到的3而非最后一个式子相除得到的然后把两个数相乘再除以最大公约数就可以得到最小公倍数21*12/ 3 84
python代码实现
接下来我们用python代码来实现这样一道题目 题目输入两个正整数求其最大公约数和最小公倍数。def func(m,n):a mb n# 默认mn若不是则交换if m n:m,n n,mwhile n ! 0:# 对m除n取余r m % nm nn rreturn m,(a*b)/mprint(正整数m与n的最大公约数与最小公倍数分别为,func(12,21))正整数m与n的最大公约数与最小公倍数分别为 (3, 84.0)用递归的方式实现
def rec(m,n):# 默认mn若不是则交换if m n:m,n n,m# 终止条件 if n 0:return m,(a*b)/m# 递归部分return rec(n,m%n)a 12
b 21
print(正整数m与n的最大公约数与最小公倍数分别为,rec(12,21))正整数m与n的最大公约数与最小公倍数分别为 (3, 84.0)