如果你也像我一样,是个五年级的小学生,那么这个东东必不可少。那么就是数学作业神器(掏口袋)——当当当当!求最大公因数和最小公倍数的程序!
如果你是个好小好小的小学生,或是一个忘了怎么求的大baby,那我们就先要开始数学课堂,来了解一下什么叫最大公因数和最小公倍数。
因数,就是约数,公因数,也就是两个数公共的因数,最大公因数就是两个数公共因数中的最大的一个。最小的不用求啊,它就是1嘛。最小公倍数也是如此,两个数公共倍数中的最小的一个。最大的也同样不用求,你也求不出来,因为倍数是无限的。那么怎么快速的来求最大公因数和最小公倍数呢?咳,还需要我用小学老师的语气来磨磨唧唧的讲四种方法吗?在这里我只讲一种,在评论区我会把剩下的三种讲了。
我讲的,也就是最简单的,就是今天的C位(又掏口袋)——短除法
短除法需要用到短除符号,也就是这个:
然后我们把要进行短除的两个数放在短除符号上,like this:
然后让它们都去除以它们的公因数。你问我怎么知道他们的公因数?看啊!都是偶数肯定能被2整除,数位相加之和是三的倍数就能被三整除......除了两个数互质(两个质数、一质一偶、两数相邻、一和任何数)任何数都会有公因数,如果不能一下子就找到最准的,那就能写一个是一个。就像现在。我们先除以一个10,用剩下的结果再除以一个5。直到剩下的两个数互质了,就停。
达到这种效果后,就要用到我们神奇的小口诀(又又掏口袋)——最大公因乘左边,最小公倍乘半圈。那么100和350的最大公因数就是10×5=50,最小公倍数就是10×5×2×7=700。锦囊妙计:如果两数成为倍数关系,那么最大公因数就是小的数,最小公倍数就是大的数。
认识完这些,剩下的也就没啥难度了。程序就按照短除的思路去写就可以。代码给你们放在这里啦,感觉有用的就带走吧:
a=int(input()) # 输入两个数
b=int(input())
s=1 # 最大公因数(因为最大公因数是一个一个乘起来的所以不能写0)
x=0 # 最小公倍数
if b<a: # 把一个数定为小的,方便以后去看是否为倍数关系
a,b=b,a # 这里定义a是小的b是大的
if b%a==0: # 如果两数成倍数关系
s=a # 最大公因数是小的
x=b # 最小公倍数是大的
else:
for i in range(2,a): # 开始弄公因数
while a%i==0 and b%i==0: # 可能一个公因数要被除好几遍
a=a/i # a等于除后的a
b=b/i # b也等于除后的b
s*=i # 最大公因数一次次在累计
x=int(s*a*b) # 最小公倍乘半圈
print(s,x,sep=',') # 打印出来用逗号隔开
今天内容到这里,谢谢耐心观看。