51nod1046快速幂取余

给出3个正整数A B C,求A^B Mod C。
 
例如,3 5 8,3^5 Mod 8 = 3。
Input
3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)
Output
输出计算结果
Input示例
3 5 8
Output示例
3
#include<stdio.h>
long long  quickmod(long long a,long long b,long long m){
    long long ans=1;
    while(b){
        if(b&1){
            ans=(ans*a)%m;//这里a是a^(2^i)%m
            b--;
        }
        b/=2;
        a=a*a%m;
    }
    return ans;
}
int main(){
    int a,b,m;
    while(scanf("%d%d%d",&a,&b,&m)!=EOF){
      long long   ans=quickmod(a,b,m);
        printf("%lld",ans);
    }
}
原文地址:https://www.cnblogs.com/OMG-By/p/5322812.html