Cod sursa(job #149544)
Utilizator | ion ionica | Data | 5 martie 2008 20:41:17 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
program p21;
var n,p:int64;
m:int64;
f,g:text;
function putere(n,p:int64):int64;
var r:int64;
begin
n:=n mod 1999999973;
if p=0 then putere:= 1
else if p=1 then putere:=n
else begin
r:=putere((n*n), p div 2);
r:=r mod 1999999973;
if p mod 2=1 then r:=(r*n);
r:=r mod 1999999973;
putere:=r;
end;
end;
begin
assign(f,'lgput.in');reset(f);
assign(g,'lgput.out');rewrite(g);
readln(f,n,p);
m:=putere(n,p) mod 1999999973;
writeln(g,m);
close(g);
end.