要求
a^b^c mod p
保证gcd(c,p)=1
用费马小定理
b:=quick_mod(b,c,p-1);
c:=quick_mod(a,b,p);
a^c mod p=a^(c mod phi(p)) mod p
而素数的phi函数是无需计算的,即p-1
推广到多个,依次降幂即可。不断应用快速幂。
var a,b,c,p,ans:int64; function quickmod(a,b,p:int64):int64; var ret:int64; begin ret:=1; a:=a mod p; while b<>0 do begin if (b and 1)=1 then ret:=ret*a mod m; b:=b>>1; a:=a*a mod m; end; exit(ret); end; begin read(a,b,c,p); b:=quickmod(b,c,p-1); ans:=quickmod(a,b,m); writeln(ans); end.
时间: 2024-11-06 06:56:11