NUM.ONE——欧几里得算法(辗转相除法求最大公约数)(循环型)
var a,b,i,c,j,k,l,m,n:longint;
begin
readln(a,b);
c:=a mod b;
while c<>0 do
begin
a:=b;
b:=c;
c:=a mod b;
end;
writeln(b);
end.
NUM.TWO——欧几里得算法(辗转相除法求最大公约数)(递归型)
NUM.THREE——拓展欧几里得算法
var a,b,x,y,i,j,k:longint;
function exgcd(a,b:longint;var x,y:longint):longint;
var t:longint;
begin
if b=0 then
begin
x:=1;
y:=0;
exit(a);
end;
exgcd:=exgcd(b,a mod b,x,y);
t:=x;
x:=y;
y:=t-(a div b)*y;
end;
begin
readln(a,b);
k:=exgcd(a,b,x,y);
writeln(a,'*(',x,')+',b,'*(',y,')=',k);
end.