Cod sursa(job #346412)
| Utilizator | Data | 7 septembrie 2009 19:01:15 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
var x,n,m:int64;
f,g:text;
function putere(x,n:int64):int64;
begin
if n=0 then putere:=1 else if n mod 2 = 0
then putere:=((putere(x,n div 2) mod m) * (putere(x,n div 2) mod m))mod m
else putere:=((x mod m) * (putere(x,n-1) mod m ))mod m;
end;
begin
assign(f,'lgput.in'); reset(f);
assign(g,'lgput.out'); rewrite(g);
read(f,x,n);
m:=199999973;
write(g,putere(x,n));
close(f); close(g);
end.