大家好,给大家分享一下用python求两个数的最大公约数和最小公倍数,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
1.最大公约数:
(1)简介:最大公约数是这个两个数能同时被一个数整除,那么这个数就是这两个数的公约数,那么最大公约数就是这两个整数的所有质数约数的乘积
(2)代码的实现:
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另外一个数:"))
#判断num1与num2的大小
if num1 > num2:
#获取最小值
min = num2
else:
#获取最小值
min = num1
for i in range(1,min+1):
#满足公因数的条件:
if (num1 % i == 0) and (num2 % i == 0):
c = i
print('这两个数的最大公约数是:%d '%c)
(3)算法思路:输入两个数,将其中一个较小的作为循环的一个界点(因为最大公约数不可能超过他们中的任意一个数,最多情况下相等),然后再用循环依次从1到两个数中较小的一个数去依次遍历,如果可以将输入的两个数均可整除则为他们的最大公约数
(4)结果:
2.最小公倍数
(1)简介:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数
(2)代码实现:
def lcm(x,y):
if x > y:
bigger = x
else :
bigger = y
while True:
if bigger % x == 0 and bigger % y == 0:
lcm = bigger
break
else:
bigger += 1
return lcm
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
print(num1, "和",num2,"的最小公倍数为:",lcm(num1 , num2))
(3)算法思路:先比较num1,num2两数,如果num1>num2,把num1赋值给bigger,否则最大值为num2,把num2赋值给bigger用while循环为True,如果bigger取余num1为零,并且bigger取余num2为零,那么bigger就是最小公倍数
(4)结果: