最小公倍數檢視原始碼討論檢視歷史
最小公倍數 | |
---|---|
最小公倍數,兩個或多個整數公有的倍數叫做它們的公倍數。兩個或多個整數的公倍數里最小的那一個叫做它們的最小公倍數。整數a,b的最小公倍數記為[a,b],同樣的,a,b,c的最小公倍數記為[a,b,c],多個整數的最小公倍數也有同樣的記號。[1] 與最小公倍數相對應的概念是最大公約數,a,b的最大公約數記為(a,b)。
關於最小公倍數與最大公約數,我們有這樣的定理:
(a,b)[a,b]=ab(a,b均為整數) [2]
基本簡介
最小公倍數(Least Common Multiple,縮寫L.C.M.),如果有一個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數,對於兩個自然數來說,指該兩數共有倍數中最小的一個。計算最小公倍數時,通常會藉助最大公約數來輔助計算。
如果一個數既是a又是b的倍數,那麼我們就把這個數叫着a和b的公倍數,如果這個數在a b的所有公倍數里為最小,那這個數就是最小公倍數。
概念定義
幾個數共有的倍數叫做這幾個數的公倍數,其中除0以外最小的一個公倍數,叫做這幾個數的最小公倍數。自然數a、b的最小公倍數可以記作[a、b],自然數a、b的最大公因數可以記作(a、b),當(a、b)=1時,[a、b]= a×b。
如果兩個數是倍數關係,則它們的最小公倍數就是較大的數,相鄰的兩個自然數的最小公倍數是它們的乘積。
最小公倍數=兩數的乘積/最大公約(因)數, 解題時要避免和最大公約(因)數問題混淆。
最小公倍數的適用範圍:分數的加減法,中國剩餘定理(正確的題在最小公倍數內有解,有唯一的解).
因為,素數是不能被1和自身數以外的其它數整除的數;素數X的N次方,是只能被X的N-1以下次方,1和自身數整除.
所以,在求A,B,C,D,E,…,Z的最小公倍數時,只需要把這些數分解為素數的N次方之間的乘積後,取各素因子的最高次方的乘積,就是這些數的最小公倍數.
舉例說明
例如,2,4分別是2的1次方和2次方,最高次方為2的2次方,所以2和4的最小公倍數是4。3,5的最小公倍數是15,同樣5和6這兩個數最小公倍數就是他們的乘積30。
求756,4400,19845,9000的最小公倍數?
因756=2×2×3×3×3×7,4400=2×2×2×2×5×5×11,19845=3×3×3×3×5×7×7,9000=2×2×2×3×3×5×5×5,這裡有素數2,3,5,7,11.2最高為4次方16,3最高為4次方81,5最高為3次方125,7最高為2次方49,還有素數11.所以得最小公倍數為16*81*125*49*11=87318000.
示例例題
兩個數的最大公因數是15,最小公倍數是90,求這兩個數分別是多少?
15×1=15,15×6=90;當a1b1分別是2和3時,a、b分別為15×2=30,15×3=45。所以,這兩個數是15和90或者30和45。
練習一
1,兩個數的最大公因數是9,最小公倍數是90,求這兩個數分別是多少?
答:9×1=9,9×10=90;當數a1和b1分別是2和5時,a、b分別為9×2=18,9×5=45。所以,這兩個數是9和90或者18和45。
2,兩個數的最大公因數是12,最小公倍數是60,求這兩個數的和是多少?
答:12×1=12,12×10=120;當數a1和b1分別是1和5時,a、b分別為12×1=12,12×5=60。所以,這兩個數是12和60,為此兩數的和就為:72。
3,兩個數的最大公因數是60,最小公倍數是720,其中一個數是180,另一個數是多少?
答:180÷60=3 ,720÷60=12,12÷3=4,4×60=240;因此另一個數是240.
例題2
兩個自然數的積是360,最小公倍數是120,這兩個數各是多少?
分析我們把這兩個自然數稱為甲數和乙數。因為甲、乙兩數的積一定等於甲、乙兩數的最大公因數與最小公倍數的積。根據這一規律,我們可以求出這兩個數的最大公因數是360÷120=3。又因為(甲÷3=a,乙÷3=b)中,3×a×b=120,a和b一定是互質數,所以,a和b可以是1和40,也可以是5和8。當a和b是1和40時,所求的數是3×1=3和3×40=120;當a和b是5和8時,所求的數是3×5=15和3×8=24。
練習二
1,求36和24的最大公因數和最小公倍數的乘積。
2,已知兩個數的積是3072,最大公因數是16,求這兩個數。
3,已知兩個數的最大公因數是13,最小公倍數是78,求這兩個數的差。
例題3
甲、乙、丙三人是朋友,他們每隔不同天數到圖書館去一次。甲3天去一次,乙4天去一次,丙5天去一次。有一天,他們三人恰好在圖書館相會,問至少再過多少天他們三人又在圖書館相會?
分析從第一次三人在圖書館相會到下一次再次相會,相隔的天數應該是3、4、5的最小公倍數。因為3、4、5的最小公倍數是60,所以至少再過60天他們三人又在圖書館相會。
練習三
1,1路、2路和5路車都從東站發車,1路車每隔10分鐘發一輛,2路車每隔15分鐘發一輛,而5路車每隔20分鐘發一輛。當這三種路線的車同時發車後,至少要過多少分鐘又這三種路線的車同時發車?
2,甲、乙、丙從同一起點出發沿同一方向在圓形跑道上跑步,甲跑一圈用120秒,乙跑一圈用80秒,丙跑一圈用100秒。問:再過多少時間三人第二次同時從起點出發?
3,五年級一班的同學每周一都要去看軍屬張爺爺,二班的同學每6天去看一次,三班的同學每兩周去看一次。如果「六一」兒童節三個班的同學同一天去看張爺爺,那麼,再過多少天他們三個班的同學再次同一天去張爺爺家?
例題4
一塊磚長20厘米,寬12厘米,厚6厘米。要堆成正方體至少需要這樣的磚頭多少塊?
分析把若干個長方體疊成正方體,它的棱長應是長方體長、寬、高的公倍數。現在要求長方體磚塊最少,它的棱長應是長方體長、寬、高的最小公倍數,求出正方體棱長後,再根據正方體與長方體體積之間的關係就能求出長方體磚的塊數。
練習四
1,用長9厘米、寬6厘米、高7厘米的長方體木塊疊成一個正方體,至少需要用這樣的長方體多少塊?
2,有200塊長6厘米、寬4厘米、高3厘米的長方體木塊,要把這些木塊堆成一個儘可能大的正方體,這個正方體的體積是多少立方厘米?
3,一個長方體長2.7米、寬1.8分米、高1.5分米,要把它切成大小相等的正方體小塊,不許有剩餘,這些小正方體的棱長最多是多少分米?
例題5
甲每秒跑3米,乙每秒跑4米,丙每秒跑2米,三人沿600米的環形跑道從同一地點同時同方向跑步,經過多少時間三人又同時從出發點出發?
分析甲跑一圈需要600÷3=200秒,乙跑一圈需要600÷4=150秒,丙跑一圈需要600÷2=300秒。要使三人再次從出發點一齊出發,經過的時間一定是200、150和300的最小公倍數。200、150和300的最小公倍數是600,所以,經過600秒後三人又同時從出發點出發。
練習五
1,有一條長400米的環形跑道,甲、乙二人同時同地出發,反向而行,1分鐘後第一次相遇;若二人同時同地出發,同向而行,則10分鐘後第一次相遇。已知甲比乙快,求二人的速度。
2,一環形跑道長240米,甲、乙、丙從同一處同方向騎車而行,甲每秒行8米,乙每秒行6米,丙每秒行5米。至少經過幾分鐘,三人再次從原出發點同時出發?
3,甲、乙、丙三人在一條長240米的跑道上來回跑步,甲每秒跑4米,乙每秒跑5米,丙每秒跑3米。若三人同時從一端出發,再經過多少時間三人又從此處同時出[1]發?
應用實例:
分元寶
亡故的先父留下遺囑,
共有遺產17個元寶,
老大得元寶的二分之一、 17/2=8.5
老二得元寶的三分之一、 17/3=5.66666
老三得元寶的九分之一、 17/9=1.8
問他們每一個人分別應該分幾個元寶?
在《一代大商孟洛川》中是這樣做的
孟洛川拿來一個元寶加上去
好了,現在分元寶
答案是:老大9個元寶、老二6個元寶、老三2個元寶。
還剩下一個元寶,是我們孟洛川的,拿回來
很不可思議吧
很簡單的初中數學題老大分1/2,老二分1/3,老三分1/9
這三個數的最小公倍數就是18,即9/18+6/18+2/18=17/18,就是說他們老爺子給的這個比例和根本就沒到1,。即1-17/18=1/18,也就是說,直接分,那是分不完17元寶的。這樣這要用18這個最小公倍數就能分開,最後還剩一個
程序實現
PASCAL語言實現:
1、var a,b,ans:integer;
function gcd(a,b:integer):longint;
begin
if b=0 then gcd:=a
else gcd:=gcd(b,a mod b ) ;
end;
2、var a,b,ans:integer;
function gcd(a,b:integer):longint;
begin
readln(a,b );
ans:=(a*b) div gcd(a,b);
write(ans);
end.
C語言實現:
- include <stdio.h>
- pragma warning(disable:4996)
int GCD(int a, int b);
int LCM(int a, int b);
int main(){int num1, num2, gcd, lcm;
printf("求兩個數的最大公約數及最小公倍數 \n\n請輸入你想計算的兩個數:\n");
scanf("%d%d",&num1,&num2);
gcd=GCD(num1,num2);
lcm=LCM(num1,num2);
printf("最大公約數為:%d \n最小公倍數為:%d\n",gcd,lcm);
return 0;}int GCD(int num1, int num2)
{if ( num1 % num2 == 0)
{return num2;}else
{returnGCD( num2,num1 % num2) ;}
}int LCM(int a,int b){int temp_lcm;temp_lcm = a * b / GCD(a,b); //最小公倍數等於兩數之積除以最大公約數
return temp_lcm;}C++程序實現
- include <iostream>
using namespace std;
int GCD(int num1, int num2);
int LCM(int a, int b);
int main(){int num1, num2, gcd, lcm;
cout<<"求兩個數的最大公約數及最小公倍數"<<endl<<endl;
cout<<"請輸入兩個數:";
cin>>num1>>num2;
gcd = GCD(num1, num2);
lcm = LCM(num1, num2);
//輸出最大公約數和最小公倍數
cout<<"最大公約數為:"<<gcd<<endl;
cout<<"最小公倍數為:"<<lcm<<endl;
system("pause");
return 0;
}int GCD(int num1, int num2){if ( num1 % num2 == 0)
{return num2;}else{return GCD ( num1, num1 % num2) ;}}int LCM(int a, int b)
{int temp_lcm;temp_lcm = a * b / GCD(a,b); //最小公倍數等於兩數之積除以最大公約數
return temp_lcm;