Cod sursa(job #174634)

Utilizator TudorutzuMusoiu Tudor Tudorutzu Data 9 aprilie 2008 01:07:46
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.51 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 odd(p) 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));
     close(f);
end.