第一行输入一个整数
,表示游戏的局数。
此后
行,每行输入一个整数
,表示该局游戏的初始整数。
对于每局游戏,在一行上输出一个字符串:
若小红最终获胜,输出
;
若小紫最终获胜,输出
。
大小写需与上述格式完全一致。
2 5 12
kou kou
在此样例中,共有
局游戏:
第
局:
,唯一的素因子为
。小红选择
,得到
;此时小紫无法继续操作,小红获胜;
第
局:
,一次可能的最优操作序列为
,共进行
次操作(奇数次),因此先手的小红获胜。
3 1 4 30
yukari yukari kou
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); while (n-- > 0) { int x = sc.nextInt(); int count = 0; // 质因数分解:从最小质数2开始检查 // 循环条件i*i <= x:减少不必要的检查,优化效率 for (int i = 2; i * i <= x; i++) { // 若i是x的质因数,统计其出现次数 while (x % i == 0) { x = x / i; // 除去所有当前质因数i count++; } } // 若剩余x大于1,说明x本身是一个质因数 if (x > 1) { count++; } // 根据质因数总个数的奇偶性输出结果 if (count % 2 == 1) { System.out.println("kou"); } else { System.out.println("yukari"); } } sc.close(); } }