Cod sursa(job #362081)

Utilizator arnold23Arnold Tempfli arnold23 Data 7 noiembrie 2009 20:56:27
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.45 kb
const m=1999999973;

var f:text;
    n,i,p,s,o,k:int64;

function put(a,b:int64):int64;
begin
  if b=0 then put:=1
  else begin
    if b mod 2 = 0 then begin
    k:=put(a,b div 2) mod m;
    put:=k*k mod m;
    end else
    put:=((a mod m)*(put(a,b-1)) mod m) mod m;
  end;
end;


begin
 assign(f,'lgput.in');
 reset(f);
 readln(f,n,p);
 close(f);

 s:=put(n,p);

 assign(f,'lgput.out');
 rewrite(f);
 writeln(f,s);
 close(f);
end.