pascal输入a,b求它们的最大公因数和最小公倍数,用辗转相除法如题

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 17:49:21
pascal输入a,b求它们的最大公因数和最小公倍数,用辗转相除法如题

pascal输入a,b求它们的最大公因数和最小公倍数,用辗转相除法如题
pascal输入a,b求它们的最大公因数和最小公倍数,用辗转相除法
如题

pascal输入a,b求它们的最大公因数和最小公倍数,用辗转相除法如题
function gcd(a,b:longint):longint;
var
mid:longint;
begin
while b0 do begin
mid := b;
b := a mod b;
a := mid;
end;
exit(a);
end;//最大公因数
n := a*b div gcd(a,b); 最小公倍数

1.求两数的最大公约数
function gcd(a,b:integer):integer;
begin
if b=0 then gcd:=a
else gcd:=gcd (b,a mod b);
end ;
2.求两数的最小公倍数
function lcm(a,b:integer):integer;

全部展开

1.求两数的最大公约数
function gcd(a,b:integer):integer;
begin
if b=0 then gcd:=a
else gcd:=gcd (b,a mod b);
end ;
2.求两数的最小公倍数
function lcm(a,b:integer):integer;
begin
if a lcm:=a;
while lcm mod b>0 do inc(lcm,a);
end;
这是主程序
另外,根据题目自己添

收起

楼上的求的是一串数于某个数的最大公因数,与题意不符,标程如下:
var m,n:integer;
function gcd(m,n:integer):integer;
begin
if m mod n=0 then gcd:=n
else gcd:=gcd(n,m mod n);
end;
begin
readln(m,n);
writeln(gcd(m,n));
end.