You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
737 B
Plaintext

8 months ago
{ This program computes the greatest common divisor in three different ways }
PROGRAM euclid;
VAR a,b : integer;
function gcd_euclid(a, b : integer) : integer;
begin
while a <> b do
begin
while a > b do a := a - b;
while b > a do b := b - a
end;
gcd_euclid := a
end;
FUNCTION gcd_recursive(u, v : integer) : integer;
BEGIN
IF u mod v <> 0 THEN
gcd_recursive := gcd_recursive(v, u mod v)
ELSE
gcd_recursive := v
END;
function gcd_iterative(u, v : integer) : integer;
var t : integer;
begin
while v <> 0 do
begin
t := u;
u := v;
v := t mod v
end;
gcd_iterative := u
end;
BEGIN
readln(a,b);
writeln(gcd_recursive(a,b));
writeln(gcd_iterative(a,b));
writeln(gcd_euclid(a,b))
END.