题解 | 小红和小紫的取素因子游戏

小红和小紫的取素因子游戏

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';
        }
    }
} 

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务