取余运算
题意
求b^p mod k的值。
分析
这题要用到一个原理,百度上搜’快速幂‘可以找到。
var
b,p,k,l,t,w,i:longint;
a:array[1..32]of longint;
begin
read(b,p,k);
l:=0;
t:=p;
while t<>0 do
begin
inc(l);
a[l]:=t mod 2;
t:=t div 2;
end;
w:=1;
for i:=l downto 1 do
begin
t:=w*w mod k;
if a[i]=1 then w:=b mod k *t mod k else w:=t;
end;
write(b,'^',p,' mod ',k,'=',w);
end.