Cod sursa(job #234874)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 22 decembrie 2008 09:59:47
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.56 kb
const m=1999999973;
var n,p:int64;
f,g:text;
t,r:int64;
{function putere(x,n:integer):int64;
begin
if n=0 then putere:=1
    else if n mod 2=0 then putere:=((putere(x,n div 2)) mod m)*((putere(x,n div 2)) mod m)
                         else putere:=((putere(x,n-1))mod m)*(x mod m);
}
end;
begin
assign(f,'lgput.in');
reset(f);
readln(f,n,p);
close(f);
t:=n mod m;
r:=1;
while p>0 do
    begin
    if p mod 2 =1 then r:=r*t mod m;
    t:=(t*t)mod m ;
    p:=p div 2;
    end;
assign(g,'lgput.out');
rewrite(g);
writeln(g,r);
close(g);
end.