用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)结果:

 

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