Cod sursa(job #181568)
Utilizator | Tamas Iulia tamas_iulia | Data | 18 aprilie 2008 15:55:26 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
{ridicare la putere in timp logaritmic }
var x,n,rez : int64;
f,g : text;
procedure power(x,n : int64);
begin
rez:=1;
while n<>0 do
if n mod 2=1 then
begin
rez:=(rez*x) mod 1999999973;
dec(n);
end
else
begin
x:=(x*x)mod 1999999973;
n:=n div 2;
end;
end;
begin
assign(f,'lgput.in');reset(f);
assign(g,'lgput.out');rewrite(g);
read(f,x,n);
power(x,n);
writeln(g,rez);
close(g);
end.