随笔 - 68  文章 - 57  trackbacks - 0
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(8)

随笔分类(74)

随笔档案(68)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

uva 374 Big Mod

赤裸裸的整数快速幂取模
#include <cstdio>

long long PowerMod(long long a, int b, int k)
{
    
long long tmp = a, ret = 1;
    
while (b)
    {
        
if (b & 1)
            ret 
= ret * tmp % k;
        tmp 
= tmp * tmp % k;
        b 
>>= 1;
    }
    
return ret;
}

int main()
{
    
long long a;
    
int b, k;

    
while (scanf("%lld %d %d"&a, &b, &k) == 3)
        printf(
"%lld\n", PowerMod(a, b, k));

    
return 0;
}
posted on 2009-03-15 10:58 sdfond 阅读(1724) 评论(4)  编辑 收藏 引用 所属分类: Algorithm - Number Theory

FeedBack:
# re: 整数快速幂取模 2009-03-20 00:12 ....
貌似错了哦
测试一下99998的99999次方取99999的余数  回复  更多评论
  
# re: 整数快速幂取模 2009-03-22 09:46 sdfond
@....
这个不会有错吧,如果你的系统是windows,那么显示的结果会不正常。%lld是用于Linux系统的格式化输入输出,在windows系统下可以把%lld都替换成%I64d,那样结果就能正常显示了。  回复  更多评论
  
# re: 整数快速幂取模 2009-04-17 14:28 h-ok
下載  回复  更多评论
  
# re: 整数快速幂取模 2009-09-11 22:14 圣飞雪天涯
很好
LRJ书上的不会……  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理