Cod sursa(job #388510)
| Utilizator | Data | 30 ianuarie 2010 12:46:47 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
const modnr=1999999973;
var n,p:longint;
function lgput(p:longint):int64;
var j:int64;
begin
if p=1 then lgput:=n
else begin
j:=lgput(p div 2)mod modnr;
if p and 1=0 then lgput:=(j*j)mod modnr
else lgput:=(((j*j)mod modnr)*n)mod modnr;
end;
end;
begin
assign(input,'lgput.in');
assign(output,'lgput.out');
reset(input);
rewrite(output);
read(n,p);
write(lgput(p));
close(output);
close(input);
end.
