Cod sursa(job #175772)

Utilizator TudorutzuMusoiu Tudor Tudorutzu Data 10 aprilie 2008 13:14:55
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.52 kb
const m=1999999973;
var f:text;
    n,p:longint;
function pu(n,p:longint):longint;
var x:longint;
begin
     if 0=p then pu:=1
            else
            begin
               x:=pu(n,p div 2) mod m;
               if p mod 2<>0  then pu:=(n mod m*(x*x)mod m)mod m
                              else pu:=(x mod m*x mod m) mod m;
            end;
end;
begin
     assign(f,'lgput.in'); reset(f);
     readln(f,n,p);
     close(f); assign(f,'lgput.out'); rewrite(f);
     writeln(f,pu(n,p)mod m);
     close(f);
end.