CF915G Coprime Arrays

题目描述

#### 题意: 我们称一个大小为 $n$ 的数组 $a$ 互质,当且仅当 $gcd(a_1,a_2,\cdots,a_n)=1$,$gcd$ 是最大公约数的意思。 给定 $n,k$,对于每个 $i$ $(1\le i\le k)$,你都需要确定这样的数组的个数——长度为 $n$ 的互质数组 $a$ ,满足对每个 $j$ $(1\le j\le n)$,都有 $1\le a_j\le i$。 答案可能非常大,请对 $10^9+7$ 取模。

输入格式

只有一行,两个数 $n,k$ $(1\le n,k\le 2\cdot10^6)$,分别表示数组的大小和数组元素大小的上限。

输出格式

为了降低输出的时间,你需要对输出进行如下处理: 把 $i$ 的答案(对 $10^9+7$ 取模后)记作 $b_i$。你需要输出 $\sum_{i=1}^{k} (b_i\oplus i)$,再对 $10^9+7$ 取模。 这里 $\oplus$ 表示按位异或,在 c++ 和 Java 中写作 ```^```,在 Pascal 中写作 ```xor```。

说明/提示

因为互质数组的数量比较多,我们只列出不互质的: 当 $i=1$ 时,唯一的数组就是互质的,$b_1=1$。 当 $i=2$ 时,数组 $[2,2,2]$ 不是互质的,$b_2=7$。 当 $i=3$ 时,数组 $[2,2,2],[3,3,3]$ 不是互质的,$b_3=25$。 当 $i=4$ 时,数组 $[2,2,2],[3,3,3],[2,2,4],[2,4,2],[2,4,4],[4,2,2],[4,2,4],[4,4,2],[4,4,4]$ 不是互质的,$b_4=55$。 Translated by 小粉兔