Cod sursa(job #149546)
Utilizator | Data | 5 martie 2008 20:43:00 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
program p21;
var n,p:longint;
m:longint;
f,g:text;
function putere(n,p:longint):longint;
var r:longint;
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.