Cod sursa(job #1132552)

Utilizator tain1234andrei laur tain1234 Data 3 martie 2014 16:59:22
Problema Suma divizorilor Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.65 kb
procedure cit(var a,b:longint);
var f:text;
begin
assign(f,'sumdiv.in');reset(f);
while not eof(f) do
repeat
read(f,a,b);
until (a<50000000) and (b<50000000)
end;
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;
function suma(x:qword):longint;
var s,d,p:integer;
begin
d:=2;s:=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
s:=s*((pow(d,p+1)-1)div(d-1));
inc(d)
end;
suma:=s;
end;
var a,b:longint;
g:Text;
begin
assign(g,'sumdiv.out');rewrite(g);
cit(a,b);write(g,suma(pow(a,b)) mod 9901);
close(g);
end.