求a的b次方对c取余的值
3 2 3 5 3 100 10 11 12345 12345
3 1 10481
注意用long long 型
#include<stdio.h> #define LL long long LL fun(LL a,LL b,LL c) { LL ans=1; a=a%c; while(b) { if(b&1) ans=(ans*a)%c; b=b/2; a=(a*a)%c; } return ans; } int main() { int t; LL a,b,c; scanf("%d",&t); while(t--) { scanf("%lld%lld%lld",&a,&b,&c); printf("%lld\n",fun(a,b,c)); } return 0; }
原文:http://www.cnblogs.com/tonghao/p/4708882.html