with ada.text_io; 
use ada.text_io; 
 
procedure lnko_lkkt is 
    
   function lnko1(p1 : in integer; p2 : in integer) return integer is 
      a : integer := p1; 
      b : integer := p2; 
   begin 
      while a /= b loop 
         if a > b then  
            a := a - b; 
         else  
            b := b - a; 
         end if
      end loop
      return a; 
   end lnko1; 
    
   function lnko2(p1 : in integer; p2 : in integer) return integer is 
      a : integer := p1; 
      b : integer := p2; 
      r : integer; 
   begin 
      while b /= 0 loop 
         r := a mod b; 
         a := b; 
         b := r; 
      end loop
      return a; 
   end lnko2; 
    
   function lkkt(p1 : in integer; p2 : in integer) return integer is 
      x : integer := p1; 
      y : integer := p2; 
   begin 
      while x /= y loop 
         if x < y then 
            x := x + p1; 
         else 
            y := y + p2; 
         end if
      end loop
      return x; 
   end lkkt; 
begin 
   put_line("lnko(24,21) = " & integer'image(lnko1(24,21))); 
   put_line("lnko(32,31) = " & integer'image(lnko2(32,31))); 
   put_line("lkkt(24,16) = " & integer'image(lkkt(24,16))); 
end lnko_lkkt;
VISSZA