快速幂取模
?? 咱們在計算a的n次方模m的結果,有很多種的方法這里有種log(n)的方法 在n比較大的時候還是比較合算的
#include<iostream> #include<cstdio> #include<string.h> using namespace std; __int64 pow_mod1(__int64 a,__int64 n,__int64 m) {if(n==0) return 1;__int64 ans,x=pow_mod1(a,n/2,m);ans=(x*x)%m;if(n%2) ans=(ans*a)%m;return ans; } __int64 pow_mod2(__int64 a, __int64 b, __int64 c) {__int64 ans = 1;a = a % c;while(b>0){if(b%2==1)ans = (ans * a) % c;b = b/2;a = (a * a) % c;}return ans; }int main() {__int64 a,n,m;while(scanf("%I64d%I64d%I64d",&a,&n,&m)==3){a=a%m;printf("%I64d\n",pow_mod1(a,n,m));printf("%I64d\n",pow_mod2(a,n,m));}return 0; }
?
轉載于:https://www.cnblogs.com/Opaser/p/3662065.html
總結
- 上一篇: delphi下的MVC架构-eMVC
- 下一篇: 用泛型来实现编译时期的类型推断