正题
题目链接:https://www.luogu.org/problemnew/show/P2842
题目大意
求
a#b=aaaa…a(a\#b=a^{a^{a^{a^{…^a}}}}(a#b=aaaa…a(进行幂运算b次)
解题思路
根据费马小当p为质数时
ap≡a(modp)a^p\equiv a(mod\ p)ap≡a(mod p)
推导得ab≡ab%(p−1)(modp)a^b\equiv a^{b\%(p-1)}(mod\ p)ab≡ab%(p−1)(mod p)
所以答案a#b≡aab−1%(p−1)(modp)a\# b\equiv a^{a^{b-1}\%(p-1)}(mod\ p)a#b≡aab−1%(p−1)(mod p)
codecodecode
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
const ll XJQ=1e9+7;
ll a,b;
ll power(ll a,ll b,ll p)
{ll ans=1;a%=p;while(b){if(b&1) ans=ans*a%p;a=a*a%p;b>>=1;}return ans;
}
int main()
{scanf("%lld%lld",&a,&b);ll k=power(a,b-1,XJQ-1);printf("%lld",power(a,k,XJQ));
}