Game
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 431 Accepted Submission(s): 305
Problem Description
Alice and Bob are playing a game.
The game is played on a set of positive integers from 1 to n.
In one step, the player can choose a positive integer from the set, and erase all of its divisors from the set. If a divisor doesn't exist it will be ignored.
Alice and Bob choose in turn, the one who cannot choose (current set is empty) loses.
Alice goes first, she wanna know whether she can win. Please judge by outputing 'Yes' or 'No'.
Input
There might be multiple test cases, no more than 10. You need to read till the end of input.
For each test case, a line containing an integer n. (1≤n≤500)
Output
A line for each test case, 'Yes' or 'No'.
Sample Input
1
Sample Output
Yes
题意:
Alice 和 Bob 在玩游戏,两人轮流从一个 1~n 的序列中选择一个数删去它的所有因子,如果有人不能进行操作,那么这个人就输。
题解:
因为 1 是所有数的因子,所以只要1被拿掉,那么下一个人就不能删去所有因子,游戏结束,拿掉1的玩家赢。
所以Alice只要先手把1拿掉,那么Bob就一定输。
综上所述,Alice 先手一定赢。
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(scanf("%d",&n)!=EOF)
printf("Yes\n");
}