program poging2; var gehad : array of boolean; { done } function twee(N : integer) : integer; var k,macht : integer; begin macht := 1; for k := 1 to N do macht := macht*2; twee := macht; end; procedure geteld(N : integer); var macht,k,i,getal : integer; bit,code : integer; uit : string; begin macht := twee(N); for k := 0 to macht-1 do begin code := k; uit := '2'; getal := 2; for i := 0 to N-1 do begin bit := code and 1; if bit = 0 then begin uit := uit + '*2'; getal := getal*2; end else begin uit := uit + '/3'; getal := getal div 3; end; code := code shr 1; if getal = 0 then Break; end; if not gehad[getal] then Writeln(uit,' = ',getal); gehad[getal] := true; end; end; procedure proef; const max : integer = 15; var k,macht : integer; begin macht := twee(max)*2+1; SetLength(gehad,macht); for k := 0 to macht-1 do gehad[k] := false; for k := 1 to max do geteld(k) end; begin proef; end.