 Program wehr;

Var
   Count,count2:Integer;
   tofactor:Integer;
   Factors:Integer;
   fin,fout:text;

Function Prime(Check:Integer):Boolean;

Var
   Counter : Integer;
   Flag : Boolean;
Begin
Flag := true;
For Counter := 2 to Round(sqrt(check)) do
    If Check mod Counter = 0 then
       Flag := False;

If Check < 2 then
   Flag := False;

Prime := Flag;
End;

Begin
Assign(fin,'DATA2.txt');
Reset(fin);

Assign(fout,'OUT2.txt');
rewrite(fout);
For Count := 1 to 5 do
    Begin
    Readln(fin,tofactor);
    Factors:=0;
    Count2:=2;
        While (Tofactor > 1) AND (Prime(TOfactor) <> true) do
              Begin
              If (Prime(Count2) = True) AND (toFactor mod count2 = 0) then
                 Begin
                 Factors := Factors+1;
                 Tofactor := Tofactor div count2;
                 End
              Else
                  Count2 := Count2 + 1;
              End;
    If Factors <> 0 then
       Factors := factors + 1;
    Writeln(fout,Factors);
    End;

Close(Fout);
end.

