题解:P14640 【OIMO Round 1】校验

· · 题解

如此大的数据范围,让我们不得不直面

\sum_{x|n}(-1)^{\Omega(x)}

这和质因子关系很大,设 n=\prod_{i=1}^mp_i^{\alpha_i} 为质因数分解。

由定义,\Omega(n)=\sum_{i=1}^m \alpha_i(-1)^{\Omega(n)}=(-1)^{\sum_{i=1}^m \alpha_i}=\prod_{i=1}^m(-1)^{\alpha_i}

枚举 n 的因数 x,可以枚举其每个质因子的幂次。

\sum_{0\le \beta_i\le \alpha_i,i=1,2,\dots,m}(-1)^{\Omega(\prod_{i=1}^m p_i^{\beta_i})}

用一下上面的结论:

\sum_{0\le \beta_i\le \alpha_i,i=1,2,\dots,m}\prod_{i=1}^m(-1)^{\beta_i}

对每个 \beta_i 独立,可以乘法分配律了!

\prod_{i=1}^m\sum_{0\le \beta_i\le \alpha_i}(-1)^{\beta_i}

里面的求和号似乎只能是 0/1 的样子……

\prod_{i=1}^m[2\mid\alpha_i]

根据定义,上式值为 0/1,为 1 当且仅当 n 为平方数。

问题化为,求 [l,r] 中平方数的个数。差分,[1,n] 中有 \lfloor\sqrt{n}\rfloor 个平方数。答案为 \lfloor\sqrt{r}\rfloor-\lfloor\sqrt{l-1}\rfloor