题目描述
输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。
输入输出格式
输入格式:
三个整数b,p,k.
输出格式:
输出“b^p mod k=s”
s为运算结果
输入输出样例
输入样例#1:
2 10 9
输出样例#1:
2^10 mod 9=7
分析:就是快速幂。还有mod k,高精度都不用。
代码:
var n,m,p,t:int64;
procedure try(m:int64);
var x:int64;
begin
if (m=0) or (m=1) then exit;
try(m div 2);
if odd(m) then x:=n else x:=1;
t:=((t mod p)*(t mod p)*x) mod p;
end;
begin
readln(n,m,p);
if (m=0) then begin write('1'); exit; end;
t:=n mod p;
try(m);
write(n,'^',m,' mod ',p,'=',t);
end.