2019ICPC南京網路賽B super_log——擴充套件尤拉定理
和CF 906D的套路一樣
打表可知
x
=
a
a
a
.
.
.
(
m
o
d
m
)
x=a^{a^a...}(mod m)
x=aaa...(modm) 總共
b
b
b個
a
a
a,特判
a
=
1
a=1
a=1和
b
=
0
b=0
b=0的時候記得取模,然後沒了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
unordered_map<int,ll>mp;
const int maxn=1e5+5;
int n,a,b,mo,q;
ll phi(int x){ //記得記搜 實在被卡常才上線性篩優化
if(mp[x])return mp[x];
int ans=x;int tmp=x;
for(int i=2;i*i<=x;++i){
if(x%i==0){
ans=ans/i*(i-1);
while(x%i==0)x/=i;
}
}
if(x>1)ans=ans/x*(x-1);
return mp[tmp]=ans;
}
ll Mod(ll x,ll m){ //擴充尤拉定理
return x>=m?(x%m+m):x;
}
ll mypow(ll a,ll b,ll p){
ll ans=1;
while(b){
if(b&1)ans=Mod(ans*a,p);//自定義取模
a=Mod(a*a,p);
b>>=1;
}
return ans;
}
ll solve(int l,ll m){
if(l==1||m==1)return Mod(a,m);
return mypow(a,solve(l-1,phi(m)),m);
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>q;
for(int i=1;i<=q;++i){
cin>>a>>b>>mo;
if(a==1){ cout<<1%mo<<"\n";continue;}//這裡也得模
if(b==0){ cout<<1%mo<<"\n";continue;}//特判 記得取模
cout<<solve(b,mo)%mo<<"\n";//記得最後取模
}
return 0;
}
相關文章
- 尤拉定理
- BZOJ2839/LG10596 集合計數 題解(二項式反演+擴充套件尤拉定理)套件
- 尤拉函式、整除分塊和擴充套件歐幾里得函式套件
- 擴充套件中國剩餘定理套件
- ACM-ICPC 2018 南京賽區網路預賽__J. Sum【尤拉篩法+質因子分解+思維】ACM
- 擴充套件Linux網路棧套件Linux
- go get 拉取擴充套件報錯Go套件
- 尤拉五邊形數定理小記
- 尤拉路徑
- ACM-ICPC 2018 南京賽區網路預賽__B The writing on the wall【列舉】ACM
- 數論裡的尤拉定理,試證明
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 使用基於策略的網路擴充套件KubernetesDeployments套件
- 擴充套件中國剩餘定理(EXCRT)學習筆記套件筆記
- 擴充盧卡斯定理 / exlucas
- ACM-ICPC 2018 南京賽區網路預賽__K The Great Nim Game【博弈論+費馬小定理+DP】ACMGAM
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- Airtel選擇Tejas進行光學網路擴充套件AI套件
- B.日記和尤拉函式函式
- 給RecyclerView擴充套件下拉重新整理上拉載入View套件
- 擴充套件工具套件
- Sanic 擴充套件套件
- Mybatis擴充套件MyBatis套件
- SpringMVC 擴充套件SpringMVC套件
- ORACLE 擴充套件Oracle套件
- 使用Kotlin擴充套件函式擴充套件Spring Data案例Kotlin套件函式Spring
- JMeter 擴充套件開發:擴充套件 TCP 取樣器JMeter套件TCP
- 尤拉計劃700:尤拉幣
- P1082 [NOIP2012 提高組] 同餘方程 尤拉定理
- 第5章 區塊鏈擴充套件:擴容、側鏈和閃電網路區塊鏈套件
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- ASP.NET Core擴充套件庫之Http通用擴充套件ASP.NET套件HTTP
- 愛立信將網路開放功能擴充套件到邊緣套件
- iOS 通知擴充套件iOS套件
- swift擴充套件ExtensionsSwift套件
- 擴充套件BSGS/exBSGS套件
- Json擴充套件方法JSON套件
- 分類擴充套件套件