关于最大公因数和最小公倍数
都很好理解,这里就先不详细讲了。
我们计算最大公因数和最小公倍数都可以使用短除法,但在python里只能一一列举。那列举的范围都是什么呢?
最大公因数的列举范围
如果两个数为倍数关系,那最大公因数就是小一些的数。如果互质,那最大公因数就是1。最大公因数的列举范围就是1到较小的数。
最小公倍数的列举范围
如果两个数为倍数关系,那最小公倍数就是大一些的数。如果互质,那最小公倍数就是两数的积。最小公倍数的列举范围就是较大的数到两数的积。
写代码的注意事项
列举时用for循环,最大公因数要用倒序,找到第一个公因数和公倍数,停止循环并输出该数。
代码
a=int(input())
b=int(input())
for i in range(min(a,b),1,-1):
if a%i==0 and b%i==0:
print(i,end=" ")
break
for i in range(max(a,b),a*b):
if i%a==0 and i%b==0:
print(i)
break
以上代码可以直接求出两数的最大公因数和最小公倍数,在此基础上,还可以稍作改动。