HDU2035 - 人见人爱A^B

求A^B的最后三位数表示的整数。 
说明:A^B的含义是“A的B次方” 

Input

输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。

Output

对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。 

Sample Input

2 3
12 6
6789 10000
0 0

Sample Output

8
984
1

水,没什么好说的

#include<bits/stdc++.h>
using namespace std;
long long PowerMod(long long a, long long b, long long c)
{
   long long ans=1;
   a%=c;
   while(b)
   {
       if(b&1)
        ans=ans*a%c;
       b>>=1;
       a=a*a%c;
   }
   return ans;
}

int main()
{
    long long a,b,m;
    while(cin>>a>>b && a+b)
    {

        m=PowerMod(a,b,1000);
        cout<<m<<endl;
    }
    return 0;
}

 

posted @ 2018-07-26 14:09  浮生惘语  阅读(98)  评论(0编辑  收藏  举报