program poging3; 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; gehad : array of boolean; bit,code,tel,aantal : integer; uit : string; begin macht := twee(N); SetLength(gehad,macht+1); for k := 0 to macht do gehad[k] := false; gehad[2] := true; aantal := 0; Writeln(aantal); Writeln(2,' = ',2); for k := 1 to macht-1 do begin code := k; uit := '2'; getal := 2; tel := 0; for i := 0 to N-1 do begin bit := code and 1; if bit = 0 then begin tel := tel + 1; uit := uit + '*2'; getal := getal*2; end else begin tel := tel + 1; uit := uit + '/3'; getal := getal div 3; end; if getal = 0 then Break; code := code shr 1; if code = 0 then Break; end; if tel > aantal then begin Writeln(tel); aantal := tel; end; if not gehad[getal] then Writeln(uit,' = ',getal); gehad[getal] := true; end; end; procedure proef; const max : integer = 22; begin geteld(max); end; begin proef; end.