码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 4704 Sum (费马小定理+快速幂)

时间:2014-08-05 22:40:30      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:hdu

//(2^n-1)%mod
//费马小定理:a^n ≡ a^(n%(m-1)) * a^(m-1)≡ a^(n%(m-1)) (mod m)
# include <stdio.h>
# include <algorithm>
# include <string.h>
# define mod 1000000007
using namespace std;
__int64 pow(__int64 n)
{
    __int64 p=1,q=2;
    while(n)
    {
        if(n%2)
        {
            p=p*q%mod;
        }
        n/=2;
        q=q*q%mod;
    }
    return p;
}
char str[1000100];
int main()
{

    __int64 i,n,len;
    while(~scanf("%s",str))
    {
        len=strlen(str);
        n=0;
        for(i=0;i<len;i++)
        {
            n=(n*10+str[i]-'0')%(mod-1);
        }
        printf("%I64d\n",pow(n-1));
    }
    return 0;
}

hdu 4704 Sum (费马小定理+快速幂),布布扣,bubuko.com

hdu 4704 Sum (费马小定理+快速幂)

标签:hdu

原文地址:http://blog.csdn.net/lp_opai/article/details/38390681

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!