CONST
m
=
7
,
n
=
85
;

VAR
x
,
y
,
z
,
q
,
r
;

PROCEDURE
multiply
;
VAR
a
,
b
;
BEGIN
a
:=
x
;
b
:=
y
;
z
:=
0
;
WHILE
b
>
0
DO
BEGIN
IF
ODD
b
THEN
z
:=
z
+
a
;
a
:=
2
*
a
;
b
:=
b
/
2
;
END
END
;

PROCEDURE
divide
;
VAR
w
;
BEGIN
r
:=
x
;
q
:=
0
;
w
:=
y
;
WHILE
w
<=
r
DO
w
:=
2
*
w
;
WHILE
w
>
y
DO
BEGIN
q
:=
2
*
q
;
w
:=
w
/
2
;
IF
w
<=
r
THEN
BEGIN
r
:=
r
-
w
;
q
:=
q
+
1
END
END
END
;

PROCEDURE
gcd
;
VAR
f
,
g
;
BEGIN
f
:=
x
;
g
:=
y
;
WHILE
f
#
g
DO
BEGIN
IF
f
<
g
THEN
g
:=
g
-
f
;
IF
g
<
f
THEN
f
:=
f
-
g
;
END
;
z
:=
f
END
;

BEGIN
x
:=
m
;
y
:=
n
;
CALL
multiply
;
x
:=
25
;
y
:=
3
;
CALL
divide
;
x
:=
84
;
y
:=
36
;
CALL
gcd
;
write
z
;
END
.