51nod1046快速幂取余 发表于 2016-03-26 | 分类于 acm | 给出3个正整数A B C,求A^B Mod C。 例如,3 5 8,3^5 Mod 8 = 3。Input3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)Output输出计算结果Input示例3 5 8Output示例3 1234567891011121314151617181920#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); }}