Dobro, zasto ovoj kod ne raboti, mi pominuva na samo 2 primeri.....
var
A,B,N,d,i,j:longint;
e:array[1..1000000] of byte;
begin
fillchar(e,sizeof(e),0);
readln(A,B,N);
j:=0;
while B mod 2<>B do
begin
inc(j);
e[j]:=B mod 2;
B:=B div 2;
end;
d:=1;
for i:=j downto 1 do
begin
d:=sqr(d) mod N;
if e[i]=1 then
d:=(d*A) mod N;
end;
writeln(d);
end.
var
A,B,N,d,i,j:longint;
e:array[1..1000000] of byte;
begin
fillchar(e,sizeof(e),0);
readln(A,B,N);
j:=0;
while B mod 2<>B do
begin
inc(j);
e[j]:=B mod 2;
B:=B div 2;
end;
d:=1;
for i:=j downto 1 do
begin
d:=sqr(d) mod N;
if e[i]=1 then
d:=(d*A) mod N;
end;
writeln(d);
end.