2个回答
展开全部
最大公约数可以用辗转相除法计算,多个数的计算中,设有m1,m2,m3三数,先求得m1和m2的最大公约数a1,然后将a1和m3求最大公约数a2,a2就是三数的最大公约数了
若两数互质,则最小公倍数为两数乘积,若不互质,最小公倍数通过两数乘积除以最大公约数来进行计算,多个数的计算中,设有m1,m2,m3三数,先求得m1和m2的最大公约数a1,则两数最小公倍数为b1=m1*m2/a1(互质则为b1=m1*m2),然后将b1和m3求最大公约数a2,则两数最小公倍数为b2=b1*m3/a2(互质则为b2=b1*m3),b2就是三数的最小公倍数了
若两数互质,则最小公倍数为两数乘积,若不互质,最小公倍数通过两数乘积除以最大公约数来进行计算,多个数的计算中,设有m1,m2,m3三数,先求得m1和m2的最大公约数a1,则两数最小公倍数为b1=m1*m2/a1(互质则为b1=m1*m2),然后将b1和m3求最大公约数a2,则两数最小公倍数为b2=b1*m3/a2(互质则为b2=b1*m3),b2就是三数的最小公倍数了
追问
这样做的话,是不是有点麻烦,用这个做法去写VB程序有点。。。。还有其他的算法?
追答
额,不太清楚是否有更好的算法。不过我想这种方法的编码可能并没有你想的那么麻烦。输入两个数字,判断大的数为m,小的数为n,a=m mod n,a=1,则互质,a=0,则最大公约数为n,其余情况下,m=n,n=a,循环即可
展开全部
一、多个数最大公约数算法
输入N个数 ==》数组A[N]
输出 A[1] ~ A[N]
设最大公约数 G=1 ,标志B=0
循环取除数 I = 2 ~NMIN /2
循环 J=1~N 取被除数A[J]
⑴ 判断整除 A[J]/I =INT(A[J]/I)?
能整除则除之, A[J] =A[J]/I
不能整除,B=1,
NEXT J。取下一被除数 A[J] 。
判断 B=0 ?
是,保存约数 G=G*I , I 不变。 转⑴
否,B=0
NEXT I 。取下一个除数 I
6 输出 最大公约数 = G
二、最小公倍数算法
输入A、B两个数
判断 若A>B 则交换
GB = B
循环 (T)
判断 若GB能被A整除,则退出循环,转输出 GB
否则 GB=GB+B
下一个
5 输出 :“A 和 B 的最小公倍数 =GB”
供参考。
更多追问追答
追问
最大公约数的那里没有看懂。。能否在解释一下。
追答
哪儿不懂,能指个重点范围吗?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询