51nod 1831:小C的遊戲html
題目連接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1831spa
題目大意:有堆大小爲$n$的石子,每人每次能夠從中取走一個或留下$d$($d|n$,$d$不爲$1$或$n$)個石子,最後一個取石子的爲輸.code
暴力htm
注意$n=0$時也爲輸,複雜度$O($可過$)$(滑稽.blog
代碼以下:遊戲
1 #include <cstdio> 2 using namespace std; 3 typedef long long ll; 4 ll T,n; 5 bool jg(ll n){ 6 if(n<=1)return 0; 7 if(n==2)return 1; 8 for(ll i=2;i*i<=n;++i)if(n%i==0){ 9 if(!jg(i))return 1; 10 if(!jg(n/i))return 1; 11 } 12 return !jg(n-1); 13 } 14 int main(void){ 15 scanf("%lld",&T); 16 while(T--){ 17 scanf("%lld",&n); 18 if(jg(n))printf("TAK\n"); 19 else printf("NIE\n"); 20 } 21 }