编写函数,实现辗转相除法,接收两个整数,返回这两个整数的最大公约数。
辗转相除法按下面的形式展示:
如果要求100与18的最大公约数,则:
100/18=5(商)…10(余数)
18/10=1…8
10/8=1…2
8/2=4…0
因此,则说明2是100与18的最大公约数!
代码如下:
#辗转相除
def divisor(n,m):
d=1
while d!=0:
c=n/m #商数
d=n%m #余数
n=m #替换除数
m=d #替换被除数
return n
#判断大小
def judge(n,m):
if n>m:
re=divisor(n,m)
else:
re = divisor(m, n)
return re
#主函数
s=judge(100,18)
print(s)
输出结果:
2
Process finished with exit code 0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)