#include<cstdio> #include<iostream> #include<string> #include<cstring> #include<cmath> #include<stdlib.h> #include<algorithm> #include<vector> #include<queue> #include<stack> using namespace std; int in(int a,int b) { int ans=1; while(b!=0) { if(b%2==1) { ans*=a; ans=ans%1000; } a*=a; a=a%1000; b=b/2; } return ans; } int main() { int a,b; while(cin>>a>>b&&(a!=0||b!=0)) { cout<<in(a,b)<<endl; } return 0; }
在计算过程中,就直接把中间结果对1000取模。