宝典求最小公倍数算法汇总
最小公倍数(Least Common Multiple,缩写L.C.M.),如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,通常会借助最大公约数来辅助计算。其中,4是最小的公倍数,叫做他们的最小公倍数。 例如,十天干和十二地支混合称呼一阴历年,干支循环回归同一名称的所需时间,就是 12 和 10 的最小公倍数,即是 60 ??一个“甲子”。对分数进行加减运算时,要求两数的分母相同才能计算,故需要通分;假如令两个分数的分母通分成最小公倍数,计算量便最低。
目录
最小公倍数的求法
专
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
简析
计算机程序实现
最小公倍数的求法
短除法
步骤:
一、找出两数的最小公约数,列短除式,用最小公约数去除这两个数,得二商;
二、找出二商的最小公约数,用最小公约数去除二商,得新一级二商;
三、以此类推,直到二商为互质数;
四、将所有的公约数及最后的二商相乘,所得积就是原二数的最小公倍数。
例:求48和42的最小公倍数
解: 48与42的最小公约数为2
48/2=24;42/2=21;24与21的最小公约数为3
24/3=8;21/3=7;8和7互为质数
2×3×8×7=336
短除法是最常见的用法。也有其他的方法,再用短除法是一定要超出他们的最大公倍数。
质因数分解
举例:12和27的最小公倍数
12=2×2×3
27=3×3×3
必须用里面数字中的最大次方者,像本题有3和3的立方,所以必须使用3的立方(也就是3*3*3),不能使用3
所以:
2×2×3×3×3=4×27=108
两数的最小公倍数是108 借助最大公约数求最小公倍数
步骤:
一、利用辗除法或其它方法求得最大公约数;
二、 最小公倍数等于两数之积除以最大公约数。
举例:12和8的最大公约数为4
12×8/4=24
两数的最小公倍数是24
专题简析
几个数公有的倍数叫做这几个数的公倍数,其中最小的一个公倍数,叫做这几个数的最小公倍数。自然数a、b的最小公倍数可以记作[a、b],自然数a、b的最大公因数可以记作(a、b),当(a、b)=1时,[a、b]= a×b。
两个数的最大公因数和最小公倍数有着下列关系:
最大公因数×最小公倍数=两数的乘积
即(a、b)×[a、b]= a×b
要解答求最小公倍数的问题,关键要根据题目中的已知条件,对问题作全面的分析,若要求的数对已知条件来说,是处于被除数的地位,通过就是求最小公倍数,解题时要避免和最大公约数问题混淆。
例题1
两个数的最大公因数是15,最小公倍数是90,求这两个数分别是多少,
分析 根据“两个数的最大公因数与最小公倍数的乘积等于这两个数的乘积(这里应该写错了吧,90/15=6,根据下面的解答应该是这个意思)”可先求出这两个数的乘积,再把这个积分解成两个数。根据题意:
当a1b1分别是1和6时,a、b分别为15×1=15,15×6=90;当a1b1分别是2和3时,a、b分别为15×2=30,15×3=45。所以,这两个数是15和90或者30和45。
练习一
1,两个数的最大公因数是9,最小公倍数是90,求这两个数分别是多少,
2,两个数的最大公因数是12,最小公倍数是60,求这两个数的和是多少,
3,两个数的最大公因数是60,最小公倍数是720,其中一个数是180,另一个数是多少,
例题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米。若三人同时从一端出发,再经过多少时间三人又从此处同时出发,
应用实例:
分元宝:
亡故的先父留下遗嘱,
共有遗产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语言实现:
var a,b,ans:longint;
function gcd(a,b:longint):longint;
begin
if b=0 then gcd:=a
else gcd:=gcd(b,a mod b ) ;
end;
begin
readln(a,b );
ans:=(a*b) div gcd(a,b);
write(ans);
end.
C语言实现:
#include
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);
}
int GCD(int a,int b)
{
int i,temp_gcd;
for(i=a;i>=1;i--)
{
if(a%i==0)
{
if(b%i==0)
{
temp_gcd=i;
return temp_gcd;
};
};
};
}
int LCM(int a,int b)
{
int temp_lcm;
temp_lcm=a*b/GCD(a,b); //最小公倍数等于两数之积除以最大公约数
return temp_lcm;
}