B.Breaking Branches
逻辑思维题,n为2时分一次Alice必胜,n为3时,Alice分成1,2。Bob必胜。n为4的时候分成1,3,或者2,2。都是Alice赢。所以当n为偶数的时候,Alice赢。反之,Bob赢。
而Alice必操作的就是分成1。
#include <stdio.h> int main(){ int n; scanf("%d",&n); if(n%2==0){ printf("Alice\n"); printf("%d\n",n/2); } else{ printf("Bob\n"); } return 0; }
J.Jazz it Up!
纯计算暴力可过,运用素数筛也可。
#include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #define Max 1000 using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ int x = n*i; int flag= 1; for(int j = 2;j<=sqrt(x);j++){ if((n*i)%(j*j)==0){ flag = 0; } } if(flag){ cout<<i<<endl; break; } } return 0; }