Cod sursa(job #166633)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 28 martie 2008 11:20:28
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.4 kb
var a,b:int64;
    f,g:text;

function put(a,b:int64):int64;
 var r:qword;
 begin
  if b=0 then put:=1
  else
   if b and 1=1 then
    put:=(a*put(a,b-1)) mod 1999999973
   else begin
    r:=put(a,b shr 1);
    put:=(r*r) mod 1999999973;
   end;
 end;

begin
 assign(f,'lgput.in'); reset(f);
 assign(g,'lgput.out'); rewrite(g);
 read(f,a,b);
 writeln(g,put(a,b));
 close(f); close(g);
end.