PASCAL编程 求a,b的最大公约数,详解,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/01 05:36:43

枚举法:
program ex;
var
a, b, i, j, k: longint;
begin
read(a, b);
for i:=a downto 1 do
if (a mod i = 0) and (b mod i = 0) then
begin
write(i);
exit;
end;
end.

辗转相除法:
program ex;
var
a, b, c: longint;
begin
read(a, b);
while a <> 0 do
begin
c := a;
a := b mod a;
b := c;
end;
writeln(b);
end.

var a,b,t:longint;
function gcd(m,n:longint):longint;
begin
if m mod n=0 then gcd:=n else gcd:=gcd(n,m mod n);
end;
begin
readln(a,b);if a<b then begin t:=a;a:=b;b:=t;end;writeln(gcd(a,b));
end.