辗转相除法算法
(1)两个数x和y,如果x<y,交换两者的值,就是始终保证x是大于y的
(2)然后用大的那个数x除以小的那个数y得到余数r.
(3)判断r是否为0,如果为0,则y的值就是最大公约数,否则,将y的值给x,r的值给y再来进行(2)的运算,直到最终r为0,得到余数。
def fdiv(x,y):
if x<y:
x,y=y,x
r=x%y
while r!=0:
x=y
y=r
r=x%y
return y
a=fdiv(25,45)
print("25和45的最大公约数为:",a)
m=int(input("请输入一个数m:"))
n=int(input("请输入一个数n:"))
b=fdiv(m,n)
print(str(m)+"和"+str(n)+"的最大公约数:",b)
注意:xy=最小公倍数最大公约数