#L6097. 花神的数论题

花神的数论题

#6097. 花神的数论题

题目描述

定义 sum(i)\text{sum}(i) 表示 ii 的二进制表示中 11 的个数。
给出一个正整数 NN,求: [ \prod_{i=1}^{N} \text{sum}(i) ] 即 sum(1)sum(N)\text{sum}(1) \sim \text{sum}(N) 的乘积。

答案对 1000000710000007 取模。


输入格式

一个正整数 NN


输出格式

一个整数,表示答案模 1000000710000007 的结果。


样例

输入

3

输出

2

解释

  • sum(1)=1\text{sum}(1) = 1
  • sum(2)=1\text{sum}(2) = 1
  • sum(3)=2\text{sum}(3) = 2
    乘积:1×1×2=21 \times 1 \times 2 = 2

数据范围与提示

1N10151 \le N \le 10^{15}

由于 NN 很大,不能直接枚举 11NN,需要利用数位 DP 或组合计数的方法。