Cod sursa(job #346413)

Utilizator florin_marius90Florin Marius Popescu florin_marius90 Data 7 septembrie 2009 19:05:17
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.42 kb
var x,n,m,y:int64;
    f,g:text;
function putere(x,n:int64):int64;
 begin
  if n=0 then putere:=1 else if n mod 2 = 0
  then begin
  y:=putere(x,n div 2) mod m;
  putere:=y*y mod m;

       end;
  else putere:=((x mod m) * (putere(x,n-1) mod m ))mod m;
 end;

begin
assign(f,'lgput.in'); reset(f);
assign(g,'lgput.out'); rewrite(g);
read(f,x,n);
m:=199999973;
write(g,putere(x,n));
close(f); close(g);
end.