Cod sursa(job #582655)

Utilizator danalex97Dan H Alexandru danalex97 Data 15 aprilie 2011 17:11:40
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.62 kb
const i=1999999973;
var n,p,a,val:int64;
    f,g:text;

function putere(n,p:longint):int64;
var p2:longint;
begin
if p>1 then
  begin
    if odd(p) then
      begin
        val:=(val*n) mod i;
        p2:=(putere(n,p div 2)*putere(n,p div 2)) mod i;
        val:=(val*p) mod i ;
      end
    else
      begin
        p2:=(putere(n,p div 2)*putere(n,p div 2)) mod i;
        val:=val*p;
      end;
    putere:=val;
  end
else
  putere:=n;
end;

begin
assign(f,'lgput.in');reset(f);
assign(g,'lgput.out');rewrite(g);
read(f,n,p);
val:=1;
val:=putere(n,p);
writeln(g,val);
close(f);
close(g);
end.