MMOD29 - CALCULATE POW(2004,X) MOD 29
Tác giả: RR
Ngôn ngữ: Pascal
{$R+,Q+}
{$inline on}
uses math;
var
x : longint;
function get(a,n:longint):longint;
var
k,p,t:longint;
begin
if n=0 then exit(0);
if n=1 then exit(1);
k:=n>>1;
p:=get(a,k);
t:=(p*p*(a-1)+p<<1) mod 29;
if n and 1=0 then exit(t);
exit(((a*t)+1) mod 29);
end;
begin
read(x);
while (x>0) do
begin
writeln((get(2,2*x+1)*get(3,x+1)*get(167,x+1)) mod 29);
read(x);
end;
end.