fzu Problem 1650 A^B mod C

#include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <algorithm> using namespace std; unsigned long long multi(unsigned long long a,unsigned long long b,unsigned long long mod) { unsigned long long ans=0; while(b) { if(b&1) { b--; ans=(ans+a)%mod; } else { b/=2; a=(a+a)%mod; } } return ans; } unsigned long long Pow(unsigned long long a,unsigned long long b,unsigned long long mod) { unsigned long long ans=1; while(b) { if(b&1) { b--; ans=multi(ans,a,mod); } else { b/=2; a=multi(a,a,mod); } } return ans; } int main() { unsigned long long a,b,n; while(cin>>a>>b>>n) { a%=n; cout<<Pow(a,b,n)<<endl; } return 0; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步