学习笔记:求一串连续数字(range)的最小公倍数

这篇学习笔记介绍了如何使用JavaScript求解一串连续数字的最小公倍数。首先,详细阐述了利用辗转相除法计算任意两个正整数的最大公因数,然后说明如何将最大公因数应用于求解最小公倍数,最后扩展到计算Array对象内多个正整数的最小公倍数。
摘要由CSDN通过智能技术生成

1. 基本思路

这个算法是用辗转相除法实现的,所以这里只讲辗转相除法的原理。
需要为这个问题设置两个函数,一个求最大公因数,另一个借返回的最大公因数的值求最小公倍数。
假设求(18, 23)这个范围内的所有数字的最小公倍数:

18                                        18                                                                    18
18 19                                    18 * 19                                                             342
18 19 20                               18 * 19 * 20 / 2                                                 342 * 20 / 2
18 19 20 21                           18 * 19 * 20 / 2 * 21 / 3                                     3420 * 21 / 3
18 19 20 21 22                      18 * 19 * 20 / 2 * 21 / 3 * 22 / 2                         23940 * 22 / 2
18 19 20 21 22 23                  18 * 19 * 20 / 2 * 21 / 3 * 22 / 2 * 23                 263340 * 23
 
其中除号后面的数为该数字与前面所有数字最小公倍数的最大公因数,我们需要除掉最大公因数,然后累乘得到新的最小公倍数。
为了简便运算,减少不必要的遍历,所以我们只在求最大公因数的算法里传入两个数值,即之前所有数字的最小公倍数和将要处理的数字。在求最小公倍数时,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值