HOW求两个数的最小公倍数?

简介: HOW求两个数的最小公倍数?

前言:上一篇我们讲了求两个数的最大公约数;这一篇我们来讲讲怎么求最小公倍数?


--------------------------------------------------------求最小公倍数


1.暴力求解法


解析:这个方法的思路是和求最大公约数的思路是类似的;两个数(暂定m, n)的最大公约数必然>=两个数之间的最大数(暂定max);那么:


第一步:我们就要求出两个数之间的最大数;当然也是用三目运算符比较简单!!!


第二步:我们就要写个死循环while(1),直到(max%m == 0 && max%n == 0 )才跳出循环;如果没满足上面的条件,就让max++;继续执行循环;直到满足条件,break跳出循环就好啦。


下面看代码:


e637209780144a3dae9a7e9ee5ba6370.png 2.试乘取余法


解析:同样暂定两个数(m, n);最小公倍数肯定是这个数(暂定为tmp);tmp%m == 0 && tmp %n ==0 条件都是满足的;那么我们反过来想,就是(m*一个数)%n == 0 必然是满足条件的;例如:


1. 如果m>n;m=20  n=15;m*(一个数(i),这个数是从1开始的,每次循环+1)%n == 0;我们需要找这个满足条件的数,这里就可以看出,数 i=3 满足条件,此时(m*i) % n=====>(20*3) % 15 == 0 ;在打印出m*i即可。


2. 如果m<n;m=15  n=20;也是和上面的思路一样的,不过此时,数 i=4 才满足条件,此时(m*i) % n=====>(15*4) % 20 == 0 ;在打印出m*i即可。


所以,不论m , n两个数谁大谁小都是没问题的。主要就是这个循环怎么写呢?


下面看代码:


85483b91cf02468589f69ad2887be0d3.png


3.先求出最大公约数,再求最小公倍数


解析:我们是否想过两个数(m,n)的最大公约数和最小公倍数,四者之间有什么关系呢?下面直接给出结果吧!!!


最小公倍数 = (m*n) / 最大公约数 ;如果不太理解,可以自己举两个具体的数,带入验证一下


例如:m=8  n=12 ====>其最大公约数是:4 ;那么最小公倍数就是:(m*n) /4  = 24;完全是没问题的;所以这里方法就多了,你有多少方法求最大公约数,你就至少有多少种方法求最小公倍数;但它们总的来说,都是一类;下面看其中一个方法:

52041f1d7a91455c8c5eb9f5fd6f6daf.png

注意: 咦,在第二步,我为什么又创建两个临时变量tmp_m = m ,   tmp_n = n;直接用原来的数不就好了吗?但是我们最终打印的结果用到了原来的数据(m ,n);如果直接使用数据,经过循环,m和n的值是一直变化的,怎么找到原来m,n的值?所以你想明白了吗?

       

当然你也可以在刚开始的输入两个数后,就定义一个变量(int ret = m* n);记住初始的状态,这样就不用在定义临时变量直接用就可以了,最终打印 (ret / n)就可以了;这个留给读者自己去操作吧。


建议:如果你写的代码没有达到你预想的结果,比如上面这个例题,怎么办?去问别人或者百度?


当然是说no;最好的方法就是要自己去调试啦!!!在调试中你就会发现你的错误,而且更加的印象深刻,不要盲目询问;效率并不高!!!!

 

好了,到此为止,我目前已知的三种方法讲完了,你学到了吗?这是我写的第二遍博客,通过这两篇的试水,已经渐渐熟悉了;以后开始正式写博客,由浅入深,由简到难;欢迎交流学习!

相关文章
|
机器学习/深度学习 人工智能 PyTorch
|
JavaScript 前端开发
【原创】用JavaScript动态获取网页中缩放图片的长度、宽度和显示比例
【原创】用JavaScript动态获取网页中缩放图片的长度、宽度和显示比例
|
传感器 物联网 5G
5G的三大主要特性:解锁未来无限可能
5G的三大主要特性:解锁未来无限可能
2258 1
|
运维 Kubernetes 调度
【kubernetes】关于k8s集群的污点、容忍、驱逐以及k8s集群故障排查思路
【kubernetes】关于k8s集群的污点、容忍、驱逐以及k8s集群故障排查思路
|
监控 Java API
解密Sentinel中流控规则的阀值奥秘
解密Sentinel中流控规则的阀值奥秘
230 0
解密Sentinel中流控规则的阀值奥秘
|
数据可视化
R语言广义相加(加性)模型(GAMs)与光滑函数可视化
R语言广义相加(加性)模型(GAMs)与光滑函数可视化
|
JavaScript
Vue项目使用bpmn预览流程图
Vue项目使用bpmn预览流程图
639 0
python实现微信甜蜜信息轰炸机
python实现微信甜蜜信息轰炸机
|
SQL 存储 Oracle
oracle异常处理
oracle异常处理
676 0

热门文章

最新文章