python_蓝桥杯_真题_最大公因数和最小公倍数_数学作业神器

如果你也像我一样,是个五年级的小学生,那么这个东东必不可少。那么就是数学作业神器(掏口袋)——当当当当!求最大公因数和最小公倍数的程序!

如果你是个好小好小的小学生,或是一个忘了怎么求的大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=',')   # 打印出来用逗号隔开

今天内容到这里,谢谢耐心观看。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值