Cod sursa(job #346414)
Utilizator | Data | 7 septembrie 2009 19:05:46 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
var x,n,m,y:int64;
f,g:text;
function putere(x,n:int64):int64;
begin
if n=0 then putere:=1 else if n mod 2 = 0
then begin
y:=putere(x,n div 2) mod m;
putere:=y*y mod m;
end
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.