目录

幂的末尾信息学奥赛一本通-1084

幂的末尾(信息学奥赛一本通-1084)

【题目描述】

幂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;
}