Greatest common divisor: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add CLU) |
No edit summary |
||
Line 423: | Line 423: | ||
The gcd of +33 and +77 is +11 |
The gcd of +33 and +77 is +11 |
||
The gcd of +49865 and +69811 is +9973 |
The gcd of +49865 and +69811 is +9973 |
||
</pre> |
|||
=={{header|ALGOL-M}}== |
|||
<lang algol>BEGIN |
|||
% RETURN P MOD Q % |
|||
INTEGER FUNCTION MOD (P, Q); |
|||
INTEGER P, Q; |
|||
BEGIN |
|||
MOD := P - Q * (P / Q); |
|||
END; |
|||
% RETURN GREATEST COMMON DIVISOR OF X AND Y % |
|||
INTEGER FUNCTION GCD (X, Y); |
|||
INTEGER X, Y; |
|||
BEGIN |
|||
INTEGER R; |
|||
IF X < Y THEN |
|||
BEGIN |
|||
INTEGER TEMP; |
|||
TEMP := X; |
|||
X := Y; |
|||
Y := TEMP; |
|||
END; |
|||
WHILE (R := MOD(X, Y)) <> 0 DO |
|||
BEGIN |
|||
X := Y; |
|||
Y := R; |
|||
END; |
|||
GCD := Y; |
|||
END; |
|||
COMMENT - EXERCISE THE FUNCTION; |
|||
WRITE("THE GDC OF 21 AND 35 IS", GCD(21,35)); |
|||
WRITE("THE GDC OF 23 AND 35 IS", GCD(23,35)); |
|||
WRITE("THE GDC OF 1071 AND 1029 IS", GCD(1071,1029)); |
|||
WRITE("THE GDC OF 3528 AND 3780 IS", GCD(3528,252)); |
|||
END</lang> |
|||
{{out}} |
|||
<pre>THE GDC OF 21 AND 35 IS 7 |
|||
THE GDC OF 23 AND 35 IS 1 |
|||
THE GDC OF 1071 AND 1029 IS 21 |
|||
THE GDC OF 3528 AND 3780 IS 252 |
|||
</pre> |
</pre> |
||