Cod sursa(job #551726)

Utilizator gicu_01porcescu gicu gicu_01 Data 11 martie 2011 01:06:07
Problema Suma si numarul divizorilor Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.08 kb
var  a:array[1..1000000]of boolean;
     b,d:array[1..1000000]of longint;
     t:longint; f1,f2:text;

procedure ciur;
var i,j,k:longint;
begin
 for i:=1 to 1000000 do a[i]:=true;
 a[1]:=false; k:=0;
 for i:=1 to 1000000 do
  if a[i] then
   begin
    j:=i*2;
    while j<=1000000 do
     begin
      a[j]:=false;
      j:=j+i;
     end;
    inc(k);
    b[k]:=i;
   end;
end;

procedure calc;
var i,j,c:longint; s,s1,s2,p,k:int64;
begin
 for i:=1 to t do
  begin
   read(f1,k);
   j:=1; p:=1; s1:=1;s2:=1;
   while k>1 do
    begin
     d[j]:=0;
     while k mod b[j]=0 do
      begin
       inc(d[j]);
       k:=k div b[j];
      end;
     inc(j);
    end;
   s1:=1;s2:=1;
   for c:=j downto 1 do
    if d[c]>0 then
     begin
      p:=p*(d[c]+1);
      s1:=s1*round(exp((d[c]+1)*ln(b[c]))-1);
      s2:=s2*(b[c]-1);
     end;
   s:=(s1 div s2)mod 9973;
   writeln(f2,p,' ',s);
  end;
end;
begin
 assign(f1,'grader_test1.in');
 reset(f1);
 assign(f2,'ssnd.out');
 rewrite(f2);
 readln(f1,t);
 ciur;
 calc;
 close(f1);
 close(f2);
end.