Cod sursa(job #165732)
| Utilizator | Data | 26 martie 2008 18:27:28 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.44 kb |
const c:int64 = 1999999973;
var n,p:int64;
f,g:text;
function rez(n,p:int64):int64;
begin
if p=0 then rez:=1 mod c
else if odd(p) then rez:=(n*rez(sqr(n),(p-1)div 2)) mod c
else rez:=(rez(sqr(n),p div 2)) mod c;
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.
