列表

详情


NC201610. Game

描述

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

输入描述

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

输出描述

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

示例1

输入:

4

输出:

Johnson

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Java 解法, 执行用时: 42ms, 内存消耗: 10740K, 提交时间: 2023-08-13 13:44:53

import java.util.Scanner;

public class Main {
	public static void main(String[]args)
	{
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int sum=0;
		while(n>1)
		{
			for(int i=2;i<=n;i++)
			{
				if(n%i==0)
				{
					sum++;
					n/=i;
					break;
				}
			}
		}
		System.out.println(sum%2==0?"Johnson":"Nancy");
	}
}

Python3 解法, 执行用时: 47ms, 内存消耗: 4588K, 提交时间: 2023-08-13 13:44:27

n=int(input())
i,z,a=2,0,["Johnson","Nancy"];
while n>1:
    if n%i==0:
        n=n/i
        z+=1
    else:
        i+=1
print(a[z%2])

上一题