回 帖 发 新 帖 刷新版面

主题:求两数的最小公倍数

求两数的最小公倍数
function lcm(a,b:integer):integer;
begin
if a< b then swap(a,B);
lcm:=a;
while lcm mod b >0 do inc(lcm,a);
end;
这程序我看不懂,谁帮我来解释一下,万分感谢.

回复列表 (共11个回复)

11 楼

我觉得第3楼的编太烦啦,我的是:
var
    a,b,t,gcd,lcm:integer;
  begin
    readln(a,b);
    lcm:=a*b;
    if a<b
      then
        begin
          t:=a;
          a:=b;
          b:=t;
        end;
    if (a mod b=0)
        then gcd:=b
        else
          begin
            while (a mod b<>0) do
              begin
                t:=b;
                b:=a mod b;
                a:=t;
              end;
            gcd:=b;
          end;
    lcm:=lcm div gcd;
    writeln('gcd:',gcd,'  lcm:',lcm);{gcd是最大公约数,lcm是最小公倍数}
  end.
**我是初学,若不对请多指教!!!!

我来回复

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