一、欧几里德法。
var
a,b,temp:int64;
begin
read(a,b);
repeat
temp:=a;
a:=b;
b:=
until b=0
write(a);
end.
二、Stein算法。
var
a,b,temp:int64;
begin
read(a,b);
repeat
while a and 1 = 1 do
a:=a shr 1;
while b and 1 = 1 do
b:=b shr 1;
temp:=a;
a:=abs(a-b);
if temp<b
then
b:=a;
until (a=0) or (b=0);
write(a and b);
end.
三、更相减损法。(欧几里德的“减法版”)
略。