Cod sursa(job #559064)

Utilizator gicu_01porcescu gicu gicu_01 Data 17 martie 2011 16:34:48
Problema Suma si numarul divizorilor Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.92 kb
var a:array[1..1000000]of boolean;
    t:longint;

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

procedure calc;
var i,j,m,c:longint; n,s,k:int64; f1,f2:text;
begin
 assign(f1,'ssnd.in');
 reset(f1);
 assign(f2,'ssnd.out');
 rewrite(f2);
 readln(f1,t);
 for i:=1 to t do
  begin
   readln(f1,n);
   s:=1+n; k:=2; m:=round(sqrt(n));
   for j:=2 to m do
    if a[j] then
     begin
      c:=j;
      while (n mod c=0)and(c<=m) do
       begin
        if c<>n div c then
         begin s:=s+c+(n div c);k:=k+2; end
          else begin s:=s+(n div c); inc(k); end;
        c:=c+j;
       end;
     end;
   writeln(f2,k,' ',s mod 9973);
  end;
 close(f2);
 close(f1);
end;

begin
 ciur;
 calc;
 readln;
end.