题目描述
输入b,p,k的值,求b^p mod k的值。
样例输入
2 10 9
样例输出
2^10 mod 9=7
思路
快速幂
O(log₂N)
var
b,p,k,ans:int64;
procedure ksm(x:int64);
begin
if x=1 then exit;
if x mod 2=0 then
begin ksm(x div 2);ans:=ans*ans mod k;end
else
begin ksm(x div 2);ans:=ans*ans mod k*b mod k;end;
end;
begin
readln(b,p,k);
ans:=b;
ksm(p);
writeln(b,'^',p,' mod ',k,'=',ans mod k);
end.