会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
左手代码右手诗
代码改变世界
博客园
首页
新随笔
联系
订阅
管理
快速幂取模
Given a b and p, output (a^b) % p (2<=a<=100, 0<=b<=1000000000, 3<=p<=10000)
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
int
quick_power
(
int
a
,
int
b
,
int
p
)
{
int
temp
;
if
(
b
==
0
)
{
return
1
;
}
temp
=
quick_power
(
a
,
b
/
2
,
p
);
if
(
b
&
1
)
{
return
(((
temp
*
temp
)
%
p
)
*
(
a
%
p
))
%
p
;
}
else
{
return
(
temp
*
temp
)
%
p
;
}
}
int
main
(
int
argc
,
char
*
argv
[])
{
int
a
,
b
,
p
;
while
(~
scanf
(
"%d%d%d"
,
&
a
,
&
b
,
&
p
))
{
printf
(
"%d\n"
,
quick_power
(
a
,
b
,
p
));
}
return
0
;
}
posted on
2014-04-18 22:33
左手代码右手诗
阅读(
112
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部