【题目描述】
幂ab的末3位数是多少?
【输入】
两个正整数a,b。1≤a≤100,1≤b≤10000。
【输出】
从高位到低位输出幂的末三位数字,中间无分隔符。若幂本身不足三位,在前面补零。
【输入样例】
7 2011
【输出样例】
743
【题解代码】
#include<bits/stdc++.h>
using namespace std;
/*
初等数论:
模运算的性质:
1、(a+b)%m=(a%m+b%m)%m
2、(a-b)%m=(a%m-b%m)%m
3、(a*b)%m=(a%m*b%m)%m
4、(a/b)%m=(a%m/b%m)%m不成立,需要引入逆的概念
*/
/*
(a^b)%1000=(a*a*...*a)%1000=(A*a)%1000=(A%1000*a%1000)%1000=((A*a)%1000*a%1000)%1000=((A%1000*a%1000)%1000*a%1000)%1000=...
*/
int main()
{
int a, b; cin >> a >> b;
int ans = 1;
for (int i = 1; i <= b; i++)
{
ans *= a % 1000;
ans %= 1000;
}
printf("%03d", ans);
return 0;
}