Cod sursa(job #406521)

Utilizator zseeZabolai Zsolt zsee Data 1 martie 2010 16:39:05
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.53 kb
program hatvanyoz;
const maradek = 1999999973;
var n,p:qword;
    ki,be:text;

function hatvanyoz(hatvany:qword):qword;
var x:qword;
begin
 if hatvany=1 then
   begin
     hatvanyoz:=n mod maradek;
     exit;
   end;
  x:=hatvanyoz(hatvany div 2);
  if odd(hatvany) then
     hatvanyoz:= (((x*x) mod maradek)*n) mod maradek
      else
     hatvanyoz:=(x*x) mod maradek;
end;

begin
 assign(be,'lgput.in');
 assign(ki,'lgput.out');
 reset(be);
 rewrite(ki);
 readln(be,n,p);
 writeln(ki,hatvanyoz(p));
 close(ki);
end.