题解 | #Game#

Game

https://ac.nowcoder.com/acm/problem/201610

题目描述

Nancy喜欢博弈! Johnson和Nancy得到了一个神奇的多重集合,仅包含一个正整数n,两个人轮流进行操作。 一次操作可以将集合中一个数字分解为它的任意两个非1的因数,并加入集合中。 他们想知道,在Johnson和Nancy绝顶聪明的情况下,如果Nancy先手进行操作,最后谁没有办法继续操作了呢?

输入描述:

第一行:一个整数n。 数据满足:2≤n≤95718。

输出描述:

共一行:一个字符串,表示最后谁(Johnson或者Nancy)无法进行操作。

示例1

输入

4

输出

Johnson

思路

当n≠1时,n的任意非1因数可以由其若干个质因数乘积表示。无论过程怎么样,最终n将被分解为唯一的若干个质因数,且
。如12分解为3,4,再分解为3,2,2,也可以分解为6,2,再分解为3,2,2。

实现如下:

#include<cstdio>
int main()
{
    int n,i=0;
    scanf("%d",&n);
    for(int j=2;j<=n;++j)while(n%j==0)n/=j,++i;
    printf("%s",i%2?"Nancy":"Johnson");
}
全部评论

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务