最小公倍數- 维基百科,自由的百科全书

文章推薦指數: 80 %
投票人數:10人

最小公倍數[编辑] ... ,其中lcm是英语中“最小公倍数”一词(least common multiple)的首字母缩写。

对分數进行加減运算時,要求兩數的分母相同才能計算,故需要通分;标准的 ... 最小公倍數 维基百科,自由的百科全书 跳到导航 跳到搜索 最小公倍數是数论中的一个概念。

若有一個數 X {\displaystyleX} ,可以被另外兩個數 A {\displaystyleA} 、 B {\displaystyleB} 整除,且 X {\displaystyleX} 大於(或等于) A {\displaystyleA} 和 B {\displaystyleB} ,則 X {\displaystyleX} 為 A {\displaystyleA} 和 B {\displaystyleB} 的公倍數。

A {\displaystyleA} 和 B {\displaystyleB} 的公倍數有無限個,而所有正的公倍數中,最小的公倍數就叫做最小公倍數。

同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数。

n {\displaystylen} 整数 a 1 , a 2 , ⋯ , a n {\displaystylea_{1},a_{2},\cdots,a_{n}} 的最小公倍数一般记作: [ a 1 , a 2 , ⋯ , a n ] {\displaystyle[a_{1},a_{2},\cdots,a_{n}]} ,或者参照英文记法记作 lcm ⁡ ( a 1 , a 2 , ⋯ , a n ) {\displaystyle\operatorname{lcm}(a_{1},a_{2},\cdots,a_{n})} ,其中lcm是英语中“最小公倍数”一词(leastcommonmultiple)的首字母缩写。

对分數进行加減运算時,要求兩數的分母相同才能計算,故需要通分;标准的计算步骤是将兩個分數的分母通分成它们的最小公倍數,然后将通分后的分子相加。

目录 1与最大公因数之关系 2计算方法 2.1递归计算多个整数的最小公倍数 3程式代碼 3.1C# 3.2C 3.3C++ 3.4PASCAL 3.5JAVA 3.6RUBY 3.7Python 3.8Golang 4应用 5参见 6参考来源 与最大公因数之关系[编辑] 两个整数的最小公倍数与最大公因数之间有如下的关系: lcm ⁡ ( a , b ) = | a ⋅ b | gcd ⁡ ( a , b ) {\displaystyle\operatorname{lcm}(a,b)={\frac{|a\cdotb|}{\operatorname{gcd}(a,b)}}} 计算方法[编辑] 最小公倍数可以通过多种方法得到,最直接的方法是列举法,从小到大列举出其中一个数(如最大數)的倍数,当这个倍数也是另一个数的倍数时,就求得最小公倍数。

另一个方法是利用公式 lcm ⁡ ( a 1 , a 2 ) = a 1 a 2 gcd ( a 1 , a 2 ) {\displaystyle\operatorname{lcm}(a_{1},a_{2})={\frac{a_{1}a_{2}}{\gcd(a_{1},a_{2})}}} 来求解,这时首先要知道它们的最大公因数。

而最大公因数可以通过短除法得到。

利用整数的唯一分解定理,还可以用質因數分解法。

将每个整数进行质因数分解。

对每个质数,在质因数分解的表达式中寻找次数最高的乘幂,最后将所有这些质数乘幂相乘就可以得到最小公倍数。

譬如求216、384和210的最小公倍數。

对216、384和210来说: 216 = 2 3 × 3 3 {\displaystyle216=2^{3}\times3^{3}} , 384 = 2 7 × 3 1 {\displaystyle384=2^{7}\times3^{1}} , 210 = 2 1 × 3 1 × 5 1 × 7 1 {\displaystyle210=2^{1}\times3^{1}\times5^{1}\times7^{1}} 。

其中 2 {\displaystyle2} 对应的最高次乘幂为 2 7 {\displaystyle2^{7}} ; 3 {\displaystyle3} 对应的最高次乘幂为 3 3 {\displaystyle3^{3}} ; 5 {\displaystyle5} 和 7 {\displaystyle7} 对应的最高次乘幂分别是 5 1 {\displaystyle5^{1}} 与 7 1 {\displaystyle7^{1}} 。

将这些乘幂乘起来,就可以得到最小公倍数: [ 216 , 384 , 210 ] = 2 7 × 3 3 × 5 1 × 7 1 = 120960 {\displaystyle[216,384,210]=2^{7}\times3^{3}\times5^{1}\times7^{1}=120960} 。

递归计算多个整数的最小公倍数[编辑] 可以递归求出多个整数的最小公倍数:欲求 lcm ⁡ ( a 1 , . . . , a n ) ( n ≥ 3 ) {\displaystyle\operatorname{lcm}(a_{1},...,a_{n})(n\geq3)} ,只需求 lcm ⁡ ( a 1 , . . . , a n − 2 , lcm ⁡ ( a n − 1 , a n ) ) {\displaystyle\operatorname{lcm}(a_{1},...,a_{n-2},\operatorname{lcm}(a_{n-1},a_{n}))} 。

这利用了性质 lcm ⁡ ( a 1 , a 2 , a 3 ) = lcm ⁡ ( lcm ⁡ ( a 1 , a 2 ) , a 3 ) {\displaystyle\operatorname{lcm}(a_{1},a_{2},a_{3})=\operatorname{lcm}(\operatorname{lcm}(a_{1},a_{2}),a_{3})} 。

该性质证明如下: 记 a 1 , a 2 , a 3 {\displaystylea_{1},a_{2},a_{3}} 的质因数分解分别为 ∏ i = 1 n p i e 1 i , ∏ i = 1 n p i e 2 i , ∏ i = 1 n p i e 3 i {\displaystyle\prod_{i=1}^{n}p_{i}^{e_{1i}},\prod_{i=1}^{n}p_{i}^{e_{2i}},\prod_{i=1}^{n}p_{i}^{e_{3i}}} ,其中 p i {\displaystylep_{i}} 是第 i {\displaystylei} 个质数。

那么根据最小公倍数的定义, lcm ⁡ ( a 1 , a 2 , a 3 ) = ∏ i = 1 n p i max ( e 1 i , e 2 i , e 3 i ) {\displaystyle\operatorname{lcm}(a_{1},a_{2},a_{3})=\prod_{i=1}^{n}p_{i}^{\max(e_{1i},e_{2i},e_{3i})}} , lcm ⁡ ( lcm ⁡ ( a 1 , a 2 ) , a 3 ) = lcm ⁡ ( ∏ i = 1 n p i max ( e 1 i , e 2 i ) , a 3 ) = ∏ i = 1 n p i max ( max ( e 1 i , e 2 i ) , e 3 i ) = ∏ i = 1 n p i max ( e 1 i , e 2 i , e 3 i ) {\displaystyle\operatorname{lcm}(\operatorname{lcm}(a_{1},a_{2}),a_{3})=\operatorname{lcm}(\prod_{i=1}^{n}p_{i}^{\max(e_{1i},e_{2i})},a_{3})=\prod_{i=1}^{n}p_{i}^{\max(\max(e_{1i},e_{2i}),e_{3i})}=\prod_{i=1}^{n}p_{i}^{\max(e_{1i},e_{2i},e_{3i})}} , 证毕。

程式代碼[编辑] 以下使用輾轉相除法求得最大公因數,之後再求最小公倍數。

C#[编辑] intGCD(inta,intb) { returna%b==0?b:GCD(b,a%b); } intLCM(inta,intb) { returna*b/GCD(a,b); } C[编辑] intGCD(inta,intb){ if(b)while((a%=b)&&(b%=a)); returna+b; } intLCM(inta,intb){ returna*b/GCD(a,b); } C++[编辑] template TGCD(Ta,Tb){ if(b)while((a%=b)&&(b%=a)); returna+b; } template TLCM(Ta,Tb){ returna*b/GCD(a,b); } PASCAL[编辑] 1、 vara,b,ans:integer; functiongcd(a,b:integer):longint; begin ifb=0thengcd:=a elsegcd:=gcd(b,amodb); end; 2、 vara,b,ans:integer; functionlcm(a,b:integer):longint; begin readln(a,b); ans:=(a*b)divgcd(a,b); write(ans); end; JAVA[编辑] intGCD(inta,intb){ returna%b==0?b:GCD(b,a%b); } intLCM(inta,intb){ returna*b/GCD(a,b); } RUBY[编辑] defgcd(a,b) b.zero??a:gcd(b,a%b) end deflcm(a,b) a*b/gcd(a,b) end Python[编辑] defgcd(a,b): returnaifb==0elsegcd(b,a%b) deflcm(a,b): returna*b/gcd(a,b) Golang[编辑] funcGDC(a,bint)int{ ifa%b==0{ returnb } returnGDC(b,a%b) } funcLCM(a,bint)int{ returna*b/GDC(a,b) } 应用[编辑] 求最小公倍数是进行分数加减法时的步骤之一。

将分母通分时,会把所有分数的分母通分为它们的最小公倍数,然后将分子相加。

例如: 2 21 + 1 6 = 4 42 + 7 42 = 11 42 {\displaystyle{2\over21}+{1\over6}={4\over42}+{7\over42}={11\over42}} 其中分母42就是21与6的最小公倍数。

参见[编辑] 公倍数 公因数 最大公因数 参考来源[编辑] 柯召,孙绮,孙琦.《数论讲义》.高等教育出版社.2005.ISBN 753205473X.  阿尔伯特·H·贝勒著谈祥柏译.《数论妙趣:数学女王的盛情款待》.上海教育出版社.1998.ISBN 7040091909.  取自“https://zh.wikipedia.org/w/index.php?title=最小公倍數&oldid=69135704” 分类:数论算术二元運算 导航菜单 个人工具 没有登录讨论贡献创建账户登录 命名空间 条目讨论 不转换 已展开 已折叠 不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體 查看 阅读编辑查看历史 更多 已展开 已折叠 搜索 导航 首页分类索引特色内容新闻动态最近更改随机条目资助维基百科 帮助 帮助维基社群方针与指引互助客栈知识问答字词转换IRC即时聊天联络我们关于维基百科 工具 链入页面相关更改上传文件特殊页面固定链接页面信息引用本页维基数据项目 打印/导出 下载为PDF打印页面 在其他项目中 维基共享资源 其他语言 العربيةAsturianuAzərbaycancaБеларускаяБългарскиবাংলাCatalàکوردیČeštinaЧӑвашлаDanskDeutschΕλληνικάEnglishEsperantoEspañolEestiEuskaraفارسیSuomiFrançaisGalegoעבריתहिन्दीMagyarՀայերենBahasaIndonesiaItaliano日本語Қазақшаಕನ್ನಡ한국어LombardLietuviųLatviešuമലയാളംМонголमराठीBahasaMelayuPlattdüütschNederlandsNorsknynorskNorskbokmålଓଡ଼ିଆPolskiPiemontèisپنجابیPortuguêsRomânăРусскийSimpleEnglishSlovenčinaSlovenščinaShqipСрпски/srpskiSvenskaதமிழ்తెలుగుไทยTagalogTürkçeУкраїнськаاردوTiếngViệt吴语ייִדישBân-lâm-gú粵語 编辑链接



請為這篇文章評分?