给出n,m,mod; 求解n^(m!)%mod的结果
#include<cstdio>
using namespace std;
typedef long long LL;
LL n,m,mod;
/**
因在进行快速幂的时候它的平方会超过int的范围;
*/
LL P(LL n,LL m)
{
LL ans=1;
while(m)
{
if(m&1) ans=ans*n%mod;
n=n*n%mod;
m>>=1;
}
return ans;
}
int main ()
{
int t;
scanf("%d",&t);
for(int cas=1;cas<=t;cas++)
{
scanf("%lld %lld %lld",&n,&m,&mod);
for(int i=1;i<=m;i++)
n=P(n,i)%mod;
n%=mod;
printf("Case #%d: %lld\n",cas,n);
}
return 0;
}