Cod sursa(job #308646)
| Utilizator | Data | 28 aprilie 2009 01:19:36 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | fpc | Status | done |
| Runda | tot | Marime | 0.6 kb |
const c:int64 = 1999999973;
var n,p:int64;
f,g:text;
function rez(n,p:int64):int64;
var a:int64;
begin
if p=0 then rez:=1
else if p=1 then rez:=n
else begin
a:=rez(n,p div 2);
a:=a*a mod c;
if odd(p) then a:=a*n mod c;
rez:=a;
end;
end;
begin
assign(f,'lgput.in'); reset(f);
assign(g,'lgput.out'); rewrite(g);
read(f,n,p);
write(g,rez(n,p));
close(f); close(g);
end.
