Cod sursa(job #156188)

Utilizator hitmannCiocas Radu hitmann Data 12 martie 2008 13:26:32
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.46 kb
const x=1999999973;
var n,p:int64;
    g:text;
procedure citire;
var f:text;
begin assign(f,'lgput.in'); reset(f);
read(f,n,p);
close(f);
end;
function pow(n,p:int64):int64;
begin
if p=0 then pow:=1
       else if odd(p) then pow:=(n*(pow(sqr(n)mod x,(p-1)shr 1))mod x)mod x
                      else pow:=(pow(sqr(n)mod x,p shr 1))mod x;
end;
begin {pp}
citire;
assign(g,'lgput.out');rewrite(g);
n:=n mod x;
write(g,pow(n,p)mod x);
close(g);
end.