Cod sursa(job #1132578)

Utilizator tain1234andrei laur tain1234 Data 3 martie 2014 17:34:27
Problema Suma si numarul divizorilor Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.75 kb
function pow(x,y:longint):qword;
begin
if y=0 then pow:=1
else if odd(y) then pow:=x*pow(x,y-1)
else pow:=sqr(pow(x,y div 2));
end;
procedure suma(x:qword;var r,e:longint);
var s,d,p,p1:integer;
begin
d:=2;s:=1;p1:=1;
while x>1 do begin
p:=0;
while x mod d=0 do begin
inc(p);
x:=x div d
end;
if p<>0 then begin
p1:=p1*(1+p);
s:=s*((pow(d,p+1)-1)div(d-1));
end;
inc(d);  end;
r:=p1;
e:=s;
end;
procedure main;
var f,g:Text;
r,e:longint;n:qword;t:integer;
begin
assign(g,'ssnd.out');rewrite(g);
assign(f,'ssnd.in');reset(f);
read(f,t);
if t<=1000 then begin readln(f);
while not eoln(f) do begin
read(f,n);
if n<=pow(10,12) then begin
suma(n,r,e);writeln(g,r,' ',e);
readln(f);end;           end;  end;
close(g);
end;
begin
main;end.