Cod sursa(job #146476)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 1 martie 2008 19:39:39
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.56 kb
var a,b,c:int64;   
f,g:text;   
function ridicare(a,b,c:int64):int64;
var aux:int64;
begin
if b=1 then ridicare:=a
       else if b mod 2=1 then ridicare:=(ridicare(a,b-1,c)*a) mod c
                         else begin
                               aux:=ridicare(a, b div 2,c);
                               ridicare:=(aux*aux)mod c;
                               end;
end;
begin  
assign(f,'lgput.in');reset(f);   
assign(g,'lgput.out');rewrite(g);   
read(f,a,b);   
c:=1999999973;   
writeln(g,ridicare(a,b,c));
close(f);   
close(g);   
end.