回 帖 发 新 帖 刷新版面

主题:求救啊啊啊啊啊+++++++++50~!

求四个数a,b,c,d的最小公倍数~我想了半天,还是没想出来~~~~~帮帮忙啊~

回复列表 (共6个回复)

沙发

把第一个数和第二个数求最大公约数,然后用第二个数除以这个最大公约数的商乘以第一个数,就是这两个数的最小公倍数。继序这样求第三第四个数……

板凳

http://www.programfan.com/club/showbbs.asp?id=141281
自己去看看
我用的是先求第1个和第二个的公倍数,然后求的3和第4的,然后再求这两个公倍数的公倍数,求单独公倍数的方法和楼上的一样,你自己看看吧

3 楼

我以前回过的

4 楼


var
a,b,i,t,n,m,j:integer;
begin
write('input');
readln(a,b);
if a<b then begin
              t:=a;
              a:=b;
              b:=t
              end;
for i:=a downto 1 do
   if (a mod i=0)and(b mod i=0)
   then begin
      n:=a div i;
      m:=n * b;
      writeln(m);
      end;
      readln

      end.
本程序没有象上面的一样用比较复杂的函数和数组,用数学问题巧妙的解决了求公倍数,利用两个数的最大公约数转换为最小公倍数,思路如下,输入两个数,a b
(a>b)用AB的最大公约数乘AB中较小的数既为AB最小公倍数,求四个数也是同样
先按此方法求前两个数的最小公倍数n,再求后两个数的最小公倍数m,然后再求m n两个的最小公倍数,既为正确答案.
经过TP调试已经可以用了
如果还有什么疑问,可以直接联系本人QQ195555705 愿切磋(++QQ 也可以++电话)
只有星期六和日在线,)[em11][em12][em12]

5 楼

楼上的思路是错误的!!
比如说3和15,公约数是3,公倍数是15,而公约数×小数=3×3=9,不是15!!!
应该是两数相乘再除以最大公约数!

6 楼

看一下讲数论的书
上面的算法快且简单

我来回复

您尚未登录,请登录后再回复。点此登录或注册