对于每一组数据,输出a的b次方
结果对1,000,000,007取模
Sample Input
1 1
2 2
56 23
Sample Output
1
4
173541855
#include
#include
int APP(int a,int b,int m);
int main()
{
int a,b,m,t;
while(scanf("%d%d",&a,&b)!=EOF)
{ if(a>=b && b<=1000 && b>0)
{
m=1000000007;
t=APP(a,b,m);
printf("%d\n",t);
}
}
}
int APP(int a,int b,int m)
{ int r =1;
a%=m;
while(b>1)
{
if((b&1)==1) r=(r*a)%m;
a=(a*a)%m;
b/=2;
}
return (r*a)%m;
}
这是学校的题目,不知道为什么验证 56 23 这组数据的时候出来的结果不对,
请大神们多多指教,谢谢!