26 lines
799 B
Text
26 lines
799 B
Text
MODULE ggTkgV;
|
|
|
|
FROM InOut IMPORT ReadCard, WriteCard, WriteLn, WriteString, WriteBf;
|
|
|
|
VAR x, y, u, v : CARDINAL;
|
|
|
|
BEGIN
|
|
WriteString ("x = "); WriteBf; ReadCard (x);
|
|
WriteString ("y = "); WriteBf; ReadCard (y);
|
|
u := x;
|
|
v := y;
|
|
WHILE x # y DO
|
|
(* ggT (x, y) = ggT (x0, y0), x * v + y * u = 2 * x0 * y0 *)
|
|
IF x > y THEN
|
|
x := x - y;
|
|
u := u + v
|
|
ELSE
|
|
y := y - x;
|
|
v := v + u
|
|
END
|
|
END;
|
|
WriteString ("ggT ="); WriteCard (x, 6); WriteLn;
|
|
WriteString ("kgV ="); WriteCard ((u+v) DIV 2, 6); WriteLn;
|
|
WriteString ("u ="); WriteCard (u, 6); WriteLn;
|
|
WriteString ("v ="); WriteCard (v , 6); WriteLn
|
|
END ggTkgV.
|