文件详细信息
本文件的大小为 587 字节。
#include<cstdio>
typedef long long ll;
const ll P=10000007;
ll qpow(ll a,ll x){
if(x==0)return 1%P;
ll ans=1;
while(x){
if(x&1)ans=ans*a%P;
a=a*a%P;
x>>=1;
}
return ans;
}
ll n,C[64][64];
int cnt[64];
int main(){
for(int i=0;i<64;i++){
C[i][0]=1;
for(int j=1;j<=i;j++)C[i][j]=(C[i-1][j-1]+C[i-1][j])%9988440;
}
scanf("%lld",&n);
n++;
int popcnt=0;
for(int i=60;i>=0;i--){
if(n&(1ll<<i)){
n^=1ll<<i;
for(int j=0;j<=i;j++)cnt[j+popcnt]+=C[i][j];
popcnt++;
}
}
ll ans=1;
for(int i=2;i<64;i++)ans=ans*qpow(i,cnt[i])%P;
printf("%lld\n",ans);
return 0;
}