pascal输入a,b求它们的最大公因数和最小公倍数,用辗转相除法如题
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 00:29:55
![pascal输入a,b求它们的最大公因数和最小公倍数,用辗转相除法如题](/uploads/image/z/9316998-54-8.jpg?t=pascal%E8%BE%93%E5%85%A5a%2Cb%E6%B1%82%E5%AE%83%E4%BB%AC%E7%9A%84%E6%9C%80%E5%A4%A7%E5%85%AC%E5%9B%A0%E6%95%B0%E5%92%8C%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B0%2C%E7%94%A8%E8%BE%97%E8%BD%AC%E7%9B%B8%E9%99%A4%E6%B3%95%E5%A6%82%E9%A2%98)
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.