使用辗转相除法求两个数的最大公约数

辗转相除法算法
(1)两个数x和y,如果x (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=最小公倍数最大公约数

你可能感兴趣的:(笔记,python)