#include<stdio.h>
__int64 quick(int a,int b) {
__int64 ans=1,base=a;
__int64 t=0;
while(b) {
if(b&1) {
ans=ans*base%1000;
}
base=base*base%1000;
b>>=1;
}
return ans;
}
int main() {
int n,m;
while(scanf("%d %d",&n,&m),n||m) {
int t;
t=quick(n,m);
printf("%d\n",t);
}
return 0;
}
//现在来讲max的作用,用来把数变小的,我们可以想象如果是很大的数的很高次方,
//乘几次后数据非常大无法用任何一个基本数据类型表示,而且这也是不必要的,
//通常我们只需要知道最后若干位的值,这就可以用到取余了,
//余数的幂和原数的幂在余数的位数上是相同的,所以每次进行乘法运算后都要取余,
//当然如果数据很小也可以不用取余。
大数幂取余算法

本文介绍了一种处理大数幂取余问题的有效算法,并通过一个具体的C语言程序实例展示了如何实现快速幂运算,该算法适用于求解大数的高次幂在特定模数下的余数问题。
513

被折叠的 条评论
为什么被折叠?



