题解 | 小红和小紫的取素因子游戏
小红和小紫的取素因子游戏
https://www.nowcoder.com/practice/6146f391a69547c4804fe8d0330f1745?tpId=385&tqId=10858410&channelPut=tracker1
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
// 无法操作:就是当x == 1时,这个时候肯定找不到任何大于1的k了
// x = k / x
// 如果操作数是奇数,kou胜,否则yukari胜
// 那么循环条件可以是 x != 1
// 循环的方法依旧不变,因为从i = 2开始必定后续的因数都是素因子,
// 那我就一直分解直到x == 1或者x是质数,每次成功的分解都让操作数cnt++,
// 最后再判断x>1,是的话cnt++,否则不增加
// 然后根据操作数奇偶性得谁赢
while (t--) {
int x;
cin >> x;
if (x == 1) cout << "yukari" << '\n';
else {
int cnt = 0;
int n = x;
for (int i = 2; i * i <= n;) {
if (n % i == 0) {
n /= i;
cnt++;
}
else i++;
}
if (n > 1) cnt++;
if (cnt % 2) cout << "kou" << '\n';
else cout << "yukari" << '\n';
}
}
}

查看7道真题和解析