数字游戏
题目
解析
因为留下1就必胜,分类讨论:
1,n=1必败
2,n=2必胜
3,n为奇数时必胜
4,当
n
=
2
x
n=2^x
n=2x时,先手只能减1,必败
5,当
n
=
2
x
y
n=2^xy
n=2xy时,若y是质数,则先手必败,反之先手必胜
code:
#include<cstdio>
#define FF() printf("FastestFinger\n")
#define AA() printf("Ashishgup\n")
using namespace std;
int T,n;
inline bool pr(int x)
{
bool vis=1;x>>=1;
while(!(x&1))x>>=1,vis=0;
if(x==1)return 1;
for(int i=2;i*i<=x;++i)if(x%i==0)return 0;
return vis;
}
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
if(n==1)FF();
else if(n==2)AA();
else if(n&1)AA();
else if(pr(n))FF();
else AA();
}
return 0;
}