快速模幂
Posted scott527407973
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速模幂相关的知识,希望对你有一定的参考价值。
问题 H: 【分治】快速模幂
时间限制: 1 Sec 内存限制: 64 MB提交: 79 解决: 64
[提交] [状态] [讨论版] [命题人:admin]
题目描述
试求ab%n的值,其中a、b、n均为整数范围内的数。
输入
三个整数a、b和n
输出
ab%n的值
样例输入
1 1 1
样例输出
0
1 #include <iostream> 2 3 using namespace std; 4 typedef long long ll; 5 ll fun(ll a, ll b, ll mod) 6 { 7 ll ans=1%mod; 8 while(b) 9 { 10 if(b&1) 11 { 12 ans=(ans%mod*a%mod)%mod; 13 // b--; 14 } 15 b>>=1; 16 a=(a*a)%mod; 17 } 18 return ans; 19 } 20 ll a,b,p; 21 int main() 22 { 23 cin>>a>>b>>p; 24 cout<<fun(a,b,p)<<endl; 25 // cout << "Hello world!" << endl; 26 return 0;
以上是关于快速模幂的主要内容,如果未能解决你的问题,请参考以下文章
UVA11029 Leading and Trailing快速模幂+数学
模幂运算问题,使用朴素算法和重复-平方算法(快速幂+C#计算程序运行时间)