当K是L+1的倍数时,先手必败。
又因为L>=2,特殊考虑2*p的数据。
--------
#include <iostream> #include <cmath> using namespace std; int main() { int K,i,L; while (cin>>K){ for (i=3;i<=(int)sqrt(K);i++){ if (K%i==0) break; } if (K%i==0) L=i-1; else if (K%2==0&&K>4) L=K/2-1; else L=K-1; cout<<L<<endl; } return 0; }
--------