1104: 小胖买切糕
Description
今天,小胖出门买切糕,大家都知道,切糕是密度是相当的大,所以切糕的质量要用指数来计算。买买提(切糕商)说:买多少,切多少。结果变成切多少,买多少。由于小胖的气场,买买提最终决定,把一块质量为a^b的切糕,分为c块,多余出来质量为d的卖给小胖,求小胖需要买多少切糕。
Input
输入数据有多组,每组占一行,由三个整数a,b,c,当a=0,b=0,c=0时,表示输入结束,该行不做处理。0<a,c<1000 0=<b<1000
Output
很简单,你只要求出d的值
Sample Input
3 2 3
4 3 3
0 0 0
Sample Output
0
1
HINT
Source
【分析】
就是标准的快速幂取余算法,然后注意一下当c=1的时候,d=0就好了。
【代码】
#include <stdio.h>
int PowerMod(int a,int b,int c) //快速幂取余模板
{
int ans=1;
a=a%c;
while(b>0)
{
if(b%2==1)
ans=(ans*a)%c;
b=b/2;
a=(a*a)%c;
}
return ans;
}
int main()
{
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
if(a==0&&b==0&&c==0)
return 0;
if(c==1)
printf("0\n");
else
printf("%d\n",PowerMod(a,b,c));
}
return 0;
}