with Ada.Text_IO, Ada.Integer_Text_IO, Ada.Command_Line; use Ada.Text_IO, Ada.Integer_Text_IO, Ada.Command_Line; procedure code is Eingabe : Integer; Zahl1 : Integer; Zahl2 : Integer; Codierte_Zahl : Integer; Zahl : Integer; A : Integer := 0; B : Integer := 0; procedure Decode (Eingabe : Integer) is begin Get (Zahl); while Zahl mod 2 = 0 loop Zahl := Zahl / 2; A := A + 1; end loop; while Zahl mod 3 = 0 loop B := B + 1; Zahl := Zahl / 3; end loop; end Decode; procedure Encode (Zahl1 : Integer; Zahl2 : Integer) is begin Codierte_Zahl := 2**Zahl1 * 3**Zahl2; end Encode; begin if Ada.Command_Line.Argument_Count = 0 or Ada.Command_Line.Argument_Count > 2 then Put ("Bitte Kodierung oder zu kodierendes Zahlenpaar uebergeben!"); else if Ada.Command_Line.Argument_Count = 1 then Get (Zahl); Decode (Zahl); if Zahl > 1 then Put ("Ungueltige Kodierung!"); else Put (A); New_Line; Put (B); end if; else Get (Zahl1); Get (Zahl2); Encode (Zahl1, Zahl2); Put (Codierte_Zahl); end if; end if; end code;