Cod sursa(job #175772)
| Utilizator | Data | 10 aprilie 2008 13:14:55 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
const m=1999999973;
var f:text;
n,p:longint;
function pu(n,p:longint):longint;
var x:longint;
begin
if 0=p then pu:=1
else
begin
x:=pu(n,p div 2) mod m;
if p mod 2<>0 then pu:=(n mod m*(x*x)mod m)mod m
else pu:=(x mod m*x mod m) mod m;
end;
end;
begin
assign(f,'lgput.in'); reset(f);
readln(f,n,p);
close(f); assign(f,'lgput.out'); rewrite(f);
writeln(f,pu(n,p)mod m);
close(f);
end.
