您的位置:首页 > 其它

【HDU】 1852 Beijing 2008

2016-06-14 14:58 232 查看

Beijing 2008

题目链接

Beijing 2008

题目大意

先求2008n的因子和模k得m,再求2008m mod k

题解

照着题目意思求就行了。求因子和我在前面一题的题解里已经写的很清楚了,这里不再赘述。

求因子和

代码

#include <iostream>
#include <cstring>
#include <cstdio>
#define LL long long

using namespace std;

LL n,k;

LL pow_mod(LL a,LL b,LL mod)
{
LL ans=1;
while (b)
{
if (b&1) ans=(a*ans)%mod;
b>>=1;
a=(a*a)%mod;
}
return ans;
}

int main()
{
while(scanf("%I64d%I64d",&n,&k),n!=0 || k!=0)
{
LL a,b,m;
a=((pow_mod(2,3*n+1,k)-1)%k+k)%k;
b=((pow_mod(251,n+1,250*k)-1)%(250*k)+250*k)%(250*k);
b/=250;
m=(a*b)%k;
printf("%I64d\n",pow_mod(2008,m,k));
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: