program facpri; uses crt; const nl = #13+#10; type dynarryint = array of smallint; var num,_div,divcnt,i: longint; fpm,cnt: dynarryint; _exit: char; begin repeat clrscr; setlength(fpm,0); setlength(cnt,0); writeln('Factores primos'); write('Numero a factorizar?');readln(num); _div:=2; while num>1 do begin divcnt:=0; repeat while (num mod _div)<>0 do _div:=_div+1; num:=num div _div; divcnt:=divcnt+1; until (num mod _div)<>0; setlength(fpm,(length(fpm)+1)); setlength(cnt,(length(cnt)+1)); fpm[high(fpm)]:= _div; cnt[high(fpm)]:= divcnt; end; clrscr; writeln('Factores:'); for i:=0 to high(fpm) do writeln(fpm[i],'^',cnt[i]); write(nl,'"s" para sair ',nl,nl,'>');readln(_exit); until _exit='s'; end.