求助
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/1 15:43
  • 上次更新2024/8/1 16:43:35
查看原帖
求助
973480
封禁用户楼主2024/8/1 15:43

小A和小B是非常聪明的两个同学,为了一分高低,他们决定玩一个智力游戏。首先,小A挑出 n 个棋子,然后小B给出一个整数 k。接着,小A和小B轮流取走棋子,每人每次只能取走 1 到 k 个棋子,取走最后一个棋子的人胜。每一轮都是A先取。现在知道小A给出的 n,你能帮小B想一个最小的 k,确保小B能稳赢吗?

#include <iostream>
using namespace std;
int main() {
    long long n;
    cin >> n;
    if(n<2){
        cout << 0;
        return 0;
    }
    for(int i=2;i*i<=n;i++){
        if(n%i!=0){
            cout << i;
            return 0;
        }
    }
    cout << n-1;
    return 0;
}
2024/8/1 15:43
加载中...