#include using namespace std; #define f(i,a,b) for(ll i=a;i=b;i--) #define ff(i,a,b,c) for(int i=a;i0) #define vi vector #define vll vector typedef pair P; typedef pair ,int> PII; typedef pair ,long long int> PLL; typedef pair PL; typedef long long int ll; typedef long double ld; typedef int I; typedef string S; ll gcd(ll n,ll m){if(m<=n && n%m==0)return m;if(nn-r)r=n-r;f(i,1,r+1)ans=(ans*(n-i+1))/(i);return ans;} ll mu(ll a,ll b,ll mod){return ((a%mod)*(b%mod))%mod; } ll mul(ll a,ll b,ll mod){a%=mod;b%=mod;ld res=a;res*=b;ll c=(ll)(res/mod);a*=b;a-=c*mod;a%=mod;if(a<0)a+=mod;return a;} ll mod_pow(ll a,ll b,ll mod){ll ans=1;while(b){if(b&1)ans=mul(ans,a,mod);a=mul(a,a,mod);b>>=1;}return ans;} ll div(ll x,ll y,ll mod){return mul(x,mod_pow(y,mod-2,mod),mod);} ll g , n ; vector< ll > p ; ll dp[ 100001 ] ; void update( ll x ,ll val ) { while( x < 100001 ) { dp[ x ] += val ; x += ( x & -x ) ; } } ll get( ll x ) { ll ans = 0 ; while( x > 0 ) { ans += dp[ x ]; x-= ( x & -x) ; } return ans ; } void sieve() { bool prime[ 100001 ] ; f(i, 0, 100001 ) dp[ i ] = 0 ; f(i, 0, 100001 ) prime[ i ] = true; f(i, 2 , 100001 ) { if( !prime[ i ] ) continue; ff(j , 2*i , 100001 , i ) prime[ j ] = false; } f(j, 2 , 100001 ) { if( prime[ j ] ) p.push_back( j ) ; } f(i, 0, p.size() ) { ll co = 1; update( p[ i ] , 1 ) ; } } I main() { sieve() ; cin >> g ; w( g ) { g-- ; cin >> n ; if( get( n ) % 2 == 0 ) { cout <<"Bob" << endl; } else cout << "Alice" << endl; } }