编程题
### 问题描述 约瑟夫统帅着一个军队,军队里有 $n$ 个人,第 $i$ 个人的战斗力为 $a_i$。约瑟夫称一些人 $id_1...id_k$ 为一个团体,当且仅当 $gcd(a_{id_1}...a_{id_k})>1$。一个团体的战斗力为 $k*gcd(a_{id_1}...a_{id_k})$。现在约瑟夫想知道他的军队里所有可能的团体的战斗力之和,结果对 $1,000,000,007 (1e9+7)$ 取模。 ### 输入格式 第一行有一个数 $n$,表示军队的人数。 第二行有 $n$ 个数 $a_1...a_n$,表示每个人的战斗力。 ### 输出格式 输出仅一行,即为所有可能的团体的战斗力之和。 ### 输入样例 ``` 4 2 3 4 6 ``` ### 输出样例 ``` 39 ``` ### 说明 有 $9$ 个团体,分别为 $\\{1\\},\\{2\\},\\{3\\},\\{4\\},\\{1,3\\},\\{1,4\\},\\{2,4\\},\\{3,4\\},\\{1,2,4\\}$,战斗力分别为:$2,3,4,6,4,4,6,4,6$,故答案为 $2+3+4+6+4+4+6+4+6=39$。 ### 数据范围 对于 $20\\%$ 的数据,满足 $n \leq 10$。 对于 $40\\%$ 的数据,满足 $n \leq 2000, a_i \leq 2000$。 另有 $20\\%$ 的数据,满足所有的 $a_i$ 都为质数。 对于 $100\\%$ 的数据,满足 $1 \leq n \leq 500000, 1 \leq a_i \leq 500000$。
查看答案
赣ICP备20007335号-2