python求两个整数间的最小公倍数、最大公约数

1。求最小公倍数
思路:首先比较两个数的大小,找出大的那个数,再用大的那个数的倍数,从小到大,开始尝试整除小一点的那个数,整除成功时大的那个数的倍数,就是两个数的最小公倍数。

#代码用于实现两个整数间的最小公倍数算法:


def fangfa(a,b):
    if a>b:
        bigger=a
        smaller=b
    else:
        bigger=b
        smaller=a
    i=1
    while True:
        if (bigger*i)%smaller==0:                     #如果大的那个数,一旦他的倍数能整除小的那个数,就直接跳出循环,他的倍数就是最小公倍数
            print('最小公倍数为:',(bigger*i))
            break
        i+=1


if __name__ == '__main__':
    a = int(input('请输入第一个数:'))
    b = int(input('请输入第二个数:'))
    fangfa(a,b)

2。求最大公约数
思路:首先也是比较两个整数之间的大小关系,找到比较小的那个数。然后开始取值(从1开始尝试,到比较小的那个数结束),如果中间有个数恰好能把两个整数整除,那么y=那个数。中间可能有好几个数都可以把两个整数整除(公约数),但到取值结束,y中的值,必然是可以把两个整数整除的那些数中,值最大的——-最大公约数

#该函数返回两个整数的最大公约数""


def fangfa(a,b):
    if a>b:
        smaller=b
    else:
        smaller=a
    y=1   #给出一个默认值
    for i in range(1,smaller+1):           #range函数左闭右开
        if (a%i==0) and (b%i==0):      #如果是公约数,y等于公约数;然后如果再找到一个更大的公约数,y被更大公约数覆盖
            y=i
            # break                      #如果加break就是遇到最小的公约数就跳出循环,展示出最小公约数
    print('最大公约数为:',y)



if __name__ == '__main__':
    a = int(input('请输入第一个整数:'))
    b = int(input('请输入第二个整数:'))
    fangfa(a,b)

猜你喜欢

转载自blog.csdn.net/sui_yi123/article/details/82526629