Cod sursa(job #406519)

Utilizator zseeZabolai Zsolt zsee Data 1 martie 2010 16:37:55
Problema Ridicare la putere in timp logaritmic Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.51 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;
     exit;
   end;
  x:=hatvanyoz(hatvany div 2);
  if odd(hatvany) then
     hatvanyoz:=(x*x*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.