‹ 上一题 下一题 ›

06657. USACO·石子游戏 未做

2000 ms 256 MB 测试点 20 通过率 100% USACO池题USACO-Gold尼姆(Nim)博弈

题目描述

Bessie 和 Elsie 正在用 ()堆石子进行一个游戏,其中对于每个 ,第 堆石子有 个石子()。两头奶牛交替行动,Bessie 先手。

  • 首先,Bessie 选择某个正整数 并从至少包含 个石子的某堆石子中取走 个石子。
  • 然后 Elsie 选择某个正整数 ,使得 整除 ,并从至少包含 个石子的某堆石子中取走 个石子。
  • 然后 Bessie 选择某个正整数 ,使得 整除 ,并从至少包含 个石子的某堆石子中取走 个石子,以此类推。
  • 总的来说,第 回合中取走的石子数量 必须整除 。

第一个无法在其回合中取走石子的奶牛为失败者。

计算可以令 Bessie 必胜(表示存在一种策略,无论 Elsie 如何行动,Bessie 均可获胜)的第一回合取石子的方法数。如果两种取石子的方法中取的石子数量不同或者取的石子堆不同,则认为是两种不同的取石子的方法。

输入格式

输入的第一行包含 。

第二行包含 个空格分隔的整数 。

输出格式

输出可以令 Bessie 必胜(表示存在一种策略,无论 Elsie 如何行动,Bessie 均可获胜)的第一回合取石子的方法数。

注意这个问题涉及到的整数大小可能需要使用 64 位整数型存储(例如,C/C++ 中的 long long)。

样例

输入
1
7
输出
4

提示说明

【样例解释】

当 Bessie 从任意一堆中取走 或 个石子时可以获胜。此后两头奶牛会交替取走相同数量的石子,而 Bessie 执行了最后一次操作。

  • 测试点 6-10 满足 。

  • 测试点 11-20 没有额外限制。

【数据规模与约定】

  • 测试点 3-5 满足 。

  • 测试点 6-10 满足 。

  • 测试点 11-20 没有额外限制。

供题:Benjamin Qi

输入
输出

            
答案