标签:
Time Limit: 1000MS | Memory Limit: 65535KB | 64bit IO Format: |
Description
Input
Output
Sample Input
2 10 10000000 5 100 1 0 2 37
Sample Output
1024 0 0
//模版题,主要是考虑到1e18的巨大,普通的快速幂会爆LL 所以在相乘的地方用上快速乘,避免爆LL。
#include"cstdio" long long mod_mul(long long a,long long b,long long p) { long long r=0; long long t=a; while(b) { if(b&1) r=(r+t)%p; t=(t<<1)%p; b>>=1; } return r; } long long mod_pro(long long a,long long b,long long p) { long long r=1; long long t=a; while(b) { if(b&1) r=mod_mul(r,t,p)%p; t=mod_mul(t,t,p)%p; b>>=1; } return r; } int main(){ long long a,b,mod; while(~scanf("%I64d%I64d%I64d",&a,&b,&mod)){ printf("%I64d\n",mod_pro(a,b,mod)); } return 0; }
标签:
原文地址:http://www.cnblogs.com/HDMaxfun/p/5721357.html