主题:求救啊啊啊啊啊+++++++++50~!
zhaoren
[专家分:420] 发布于 2006-03-04 17:18:00
求四个数a,b,c,d的最小公倍数~我想了半天,还是没想出来~~~~~帮帮忙啊~
回复列表 (共6个回复)
沙发
p1s [专家分:4100] 发布于 2006-03-04 17:44:00
把第一个数和第二个数求最大公约数,然后用第二个数除以这个最大公约数的商乘以第一个数,就是这两个数的最小公倍数。继序这样求第三第四个数……
板凳
lmj9201 [专家分:1400] 发布于 2006-03-04 20:59:00
http://www.programfan.com/club/showbbs.asp?id=141281
自己去看看
我用的是先求第1个和第二个的公倍数,然后求的3和第4的,然后再求这两个公倍数的公倍数,求单独公倍数的方法和楼上的一样,你自己看看吧
3 楼
lmj9201 [专家分:1400] 发布于 2006-03-04 20:59:00
我以前回过的
4 楼
wychen2008 [专家分:40] 发布于 2006-03-04 22:21:00
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 楼
lmj9201 [专家分:1400] 发布于 2006-03-04 22:58:00
楼上的思路是错误的!!
比如说3和15,公约数是3,公倍数是15,而公约数×小数=3×3=9,不是15!!!
应该是两数相乘再除以最大公约数!
6 楼
47 [专家分:590] 发布于 2006-03-05 09:43:00
看一下讲数论的书
上面的算法快且简单
我来回复