Cod sursa(job #1183539)

Utilizator MaarcellKurt Godel Maarcell Data 9 mai 2014 16:40:12
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.42 kb
const prim=1999999973;
var i,j,k,l,m,n,p:qword; f1,f2:text;
function Putere(p:qword):qword;
var t:qword;
begin
if p=1 then Putere:=n
else if p mod 2 = 1 then Putere:=(Putere*Putere(p-1) ) mod prim
else begin t:=Putere(p div 2) mod prim; Putere:=t*t mod prim;  end;


end;
begin
assign(f1,'lgput.in');
reset(f1);
readln(f1,n,p);
close(f1);
assign(f2,'lgput.out');
rewrite(f2);
writeln(f2,Putere(p));
close(f2);
end.