Cod sursa(job #282833)

Utilizator mari_anaMariana Gheorghe mari_ana Data 18 martie 2009 12:57:43
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.46 kb
const ct=1999999973;
var x,p:int64;
        f:text;

function putere(n:int64):int64;
var jumate:int64;
begin
if n=0 then
        putere:=1
else
if n mod 2=0 then
        begin
        jumate:=putere(n div 2) mod ct;
        putere:=(jumate*jumate) mod ct;
        end
else
     putere:=(x*putere(n-1)) mod ct;
end;

begin
assign(f,'lgput.in'); reset(f);
readln(f,x,p);
close(f);
assign(f,'lgput.out'); rewrite(f);
writeln(f,putere(p));
close(f);
end.