编程题
### 问题描述 小齐和小艾正在玩一个有 $N$ 堆石子的游戏,每一堆石子的数量为 $a_i$。两位小朋友轮流进行,小齐先开始。 小齐首先选择一个正整数 $s_1$,然后从一堆至少有 $s_1$ 颗石子的石子堆中移除 $s_1$ 颗石子。接着,小艾选择一个正整数 $s_2$,使得 $s_1$ 能够整除 $s_2$,然后从一堆至少有 $s_2$ 颗石子的石子堆中移除 $s_2$ 颗石子。之后,小齐选择一个正整数 $s_3$,使得 $s_2$ 能够整除 $s_3$,并从一堆至少有 $s_3$ 颗石子的石子堆中移除 $s_3$ 颗石子,以此类推。 一般而言,$s_i$ 表示第 $i$ 步移除的石子数量,必须满足 $s_i$ 能够整除 $s_{i+1}$。如果一方在自己的回合无法移除石子,那么她将输掉游戏。 请计算小齐在第一步中有多少种方式可以移除石子,以确保她能够获胜。移除石子的方式被视为不同,当且仅当它们移除的石子数量不同,或者它们从不同的石堆中移除石子。 ### 输入格式 第一行包含一个整数 $N$,表示石子堆的数量。 第二行包含 $N$ 个空格分隔的整数 $a_1, a_2, \ldots, a_N$,表示每堆石子的数量。 ### 输出格式 输出小齐在第一步中移除石子的方式的数量,确保她能够获胜。 ### 样例输入 ``` 1 7 ``` ### 样例输出 ``` 4 ``` ### 评测数据规模 $1 \leq N \leq 10^5$,$1 \leq a_i \leq 10^6$。
查看答案
赣ICP备20007335号-2