Jump to content

Greatest common divisor: Difference between revisions

(Added Frink.)
Line 927:
move $v0, $t0
jr $ra</lang>
 
=={{header|Modula-2}}==
<lang Modula-2>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.</lang>
Producing the output
<lang Modula-2>jan@Beryllium:~/modula/Wirth/PIM$ ggtkgv
x = 12
y = 20
ggT = 4
kgV = 60
u = 44
v = 76
jan@Beryllium:~/modula/Wirth/PIM$ ggtkgv
x = 123
y = 255
ggT = 3
kgV = 10455
u = 13773
v = 7137</lang>
 
=={{header|Modula-3}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.