总时间限制: 1000ms 内存限制: 65536kB
描述
幂ab的末3位数是多少?
输入
两个正整数a,b。1 <= a <= 100,1 <= b <= 10000。
输出
从高位到低位输出幂的末三位数字,中间无分隔符。若幂本身不足三位,在前面补零。
样例输入
7 2011
样例输出
743
来源
2011年我爱数学少年夏令营数学竞赛 第4题
快速幂
#include<cstdio>
#include<iostream>
using namespace std;
long long a,b,p,ans;
int main(){
cin>>a>>b;p=1000,ans=1;
while(b){
if(b&1) ans=a*ans%p;
a=a*a%p;
b>>=1;
}
printf("%03lld",ans);
return 0;
}