题意: 计数区间$[1, n](1 \leq n \leq 10^{11})$素数个数. 分析: 这里只介绍一种动态规划的做法. 首先要说一下[分层思想]在动态规划中非常重要,下面的做法也正是基于这一思想. 我们用$dp[i]$表示区间$[1, \frac{n}{i}]$中素数的个数,用$c[i]$表示区间$[1, i]$中素数个数. 那么我们要求的即是$dp[1]$.由于$n$最大是$10^{11}$,因此任何区间内合数的最小素因子不超过$\sqrt{10^{11}}$.为了筛选素数,只需从区…