题目:求 (B^P)mod M。
分析:简单题、分治。快速模幂算法。
注意:P可以为0,要特判,否则会RE。
#include <stdio.h>
#include <stdlib.h>
int spow( int b, int p, int m )
{
if ( p == 0 ) return 1;
if ( p == 1 ) return b;
int a = spow( b, p/2, m );
if ( p%2 )
return (((a*a)%m)*b)%m;
else return (a*a)%m;
}
int main()
{
int b,p,m;
while ( scanf("%d%d%d",&b,&p,&m) != EOF )
printf("%d\n",spow( b%m, p, m ));
return 0;
}