1package body Greatest_Common_Divisor 2is 3 4 procedure G_C_D(M, N: in Natural; G: out Natural) 5 is 6 C, D, R: Integer; 7 begin 8 C := M; D := N; 9 while D /= 0 loop 10 --# assert C >= 0 and D > 0 and Gcd(C, D) = Gcd(M, N); 11 R := C rem D; 12 C := D; D := R; 13 end loop; 14 G := C; 15 end G_C_D; 16 17end Greatest_Common_Divisor; 18