vb中多个数的最大公约数的算法,不是代码,还有就是最小公倍数的算法。 10

我要的是算法,不是代码。麻烦懂得人给个回复。谢谢了。... 我要的是算法,不是代码。麻烦懂得人给个回复。谢谢了。 展开
 我来答
Silyss
2013-05-20 · TA获得超过147个赞
知道答主
回答量:59
采纳率:0%
帮助的人:70.5万
展开全部
最大公约数可以用辗转相除法计算,多个数的计算中,设有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就是三数的最小公倍数了
追问
这样做的话,是不是有点麻烦,用这个做法去写VB程序有点。。。。还有其他的算法?
追答
额,不太清楚是否有更好的算法。不过我想这种方法的编码可能并没有你想的那么麻烦。输入两个数字,判断大的数为m,小的数为n,a=m mod n,a=1,则互质,a=0,则最大公约数为n,其余情况下,m=n,n=a,循环即可
cunfu49
2013-05-20 · TA获得超过1528个赞
知道小有建树答主
回答量:829
采纳率:58%
帮助的人:245万
展开全部

一、多个数最大公约数算法

  1.  输入N个数 ==》数组A[N]

  2. 输出  A[1] ~ A[N] 

  3.  设最大公约数 G=1 ,标志B=0

  4.  循环取除数  I = 2  ~NMIN /2

  5. 循环    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 

二、最小公倍数算法

  1.  输入A、B两个数

  2. 判断 若A>B 则交换

  3. GB = B

  4. 循环  (T)  

          判断 若GB能被A整除,则退出循环,转输出 GB 

          否则  GB=GB+B  

    下一个

5   输出 :“A  和  B 的最小公倍数 =GB”

供参考。

更多追问追答
追问
最大公约数的那里没有看懂。。能否在解释一下。
追答
哪儿不懂,能指个重点范围吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式