Description
Dante 最近研究出了一种新的兔子cony,这种兔子是一种雌雄同体的生物,具有超强的繁殖能力,每个月它可以产下a-1个新兔子,但每月只能产一次.在b个月以后Dante实验室已经拥有了一大群兔子,有一次他突发奇想准备给cony们照相,他有无数个长凳,每个长凳上可以站c个cony,而且每个长凳上要站满了所有的cony才能使用下一个长凳,可是Dante的兔子们不可能正好让每个长凳都站满,于是他只好舍弃一些cony,现在你能告诉他最少需要舍弃多少个cony呢?(Dante第一个月只有一只兔子)
Input
多组数据测试,每行输入三个整数 a(1 < a < 1000) b(0 < b < 1000000000) c(0 < c< 1000000)
Output
每行输出一个数,需要舍弃的兔子数
Sample Input
3 4 5
Sample Output
2
View Code
1 #include<stdio.h>
2 int a,c;
3 int pows(int n)
4 {
5 long long flg;
6 int ans;
7 if(n==1)
8 return a%c;
9 else
10 {
11 flg=pows(n/2)%c;
12 ans=(flg*flg)%c;
13 if(n%2)
14 {
15 ans=(ans*a)%c;
16 }
17 return ans;
18 }
19 }
20 int main()
21 {
22 int b;
23 while(scanf("%d%d%d",&a,&b,&c)!=EOF)
24 {
25 if(b==1)
26 printf("1\n");
27 else
28 printf("%d\n",pows(b-1));
29 }
30 return 0;
31 }