P4317

小粉兔的楼下

#include<bits/stdc++.h>
using namespace std;
long long N,Ans=1;
long long C,G[50];
long long qPow(long long b,long long e) {
	long long A=1;
	for(; e; b=b*b%10000007,e>>=1)e&1?A=A*b%10000007:0;
	return A;
}
int main() {
	scanf("%lld",&N);
	for(int j=49; ~j; --j) {
		for(int i=49; i; --i)G[i]+=G[i-1];
		if(N>>j&1) ++G[C++];
	}
	++G[C];
	for(int i=1; i<=49; ++i)Ans=Ans*qPow(i,G[i])%10000007;
	printf("%lld",Ans);
	return 0;
}
posted @ 2024-09-19 20:33  yzc_is_SadBee  阅读(4)  评论(0编辑  收藏  举报