最后集合中的数全部都是质因数。
假设 n 有 p 个质因数,那么这场游戏将进行 p-1 次操作(每次操作后集合中的数字个数+1),如果 p-1 为奇数那么后手便无法再进行操作,如果 p-1 为偶数则先手再无法进行操作。
特判n为1的情况。
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
scanf("%d", &n);
if (n == 1) printf("Nancy\n");
else {
int num = 0;
for (int i = 2; i <= n; i++)
while (n % i == 0) n /= i, num++;
printf(num & 1 ? "Nancy\n" : "Johnson\n");
}
return 0;
} 
京公网安备 11010502036488号