/// Bismillah Hir Rahmanir Rahim #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define PI acos(-1.0) #define Pi 3.141592653589793 #define ff first #define ss second #define mp make_pair #define pb push_back #define eb emplace_back #define mod 1e7 #define EPS 1e-9 #define INF INT_MAX #define space " " #define all(x) (x).begin(), (x).end() #define clr(ar) memset(ar, 0, sizeof(ar)) #define setdp(ar) memset(ar, -1, sizeof(ar)) #define DFS_BLACK 1 #define DFS_WHITE 0 #define White 0 #define Black 1 /* template T gcd(T a,T b){ if(b == 0) return a; return gcd( b,a % b ); } template T lcm(T a, T b ){ return ( a * b ) / gcd( a,b ); } template string ToString(const T &x){ stringstream s; s << x; return s.str(); } template int ToInteger(const T &x){ stringstream s; s << x; int r; s >> r; return r; } */ const int dr[] = { -1, 1, 0, 0 }; /// 4 side moves. const int dc[] = { 0, 0, -1, 1 }; const int dx[] = { 1, 1, 0, -1, -1, -1, 0, 1 }; /// 8 side moves. const int dy[] = { 0, 1, 1, 1, 0, -1, -1, -1 }; const int kr[] = { 1, 1, -1, -1, 2, 2, -2, -2 }; /// Knight Moves. const int kc[] = { 2, -2, 2, -2, 1, -1, 1, -1 }; typedef long long int ll; typedef map msi; typedef map mss; typedef map mii; typedef map mll; typedef map mci; typedef map mis; typedef pair ii; typedef pair psi; typedef pair pss; typedef vector vi; typedef vector vs; typedef vector vc; typedef vector vb; typedef vector< ii > vii; template void deb(T1 e1) { cout << e1 << endl; } template void deb(T1 e1, T2 e2) { cout << e1 << space << e2 << endl; } template void deb(T1 e1, T2 e2, T3 e3) { cout << e1 << space << e2 << space << e3 << endl; } #define sf scanf #define pf printf #define sf1(a) scanf("%d", &a) #define sf2(a,b) scanf("%d %d",&a, &b) #define sf3(a,b,c) scanf("%d %d %d", &a, &b, &c) #define sf1ll(a) scanf("%I64d", &a) #define sf2ll(a,b) scanf("%I64d %I64d", &a, &b) #define sf3ll(a,b,c) scanf("%I64d %I64d %I64d", &a, &b, &c) #define READ freopen("input.txt", "r", stdin); #define WRITE freopen("output.txt", "w", stdout); /// The End. const int res = 1e5 + 10; ll Dp[res]; ll _sieve_size; bitset<10000100> bs; // 10^7 should be enough for most cases vi primes; // compact list of primes in form of vector void sieve(ll upperbound) // create list of primes in [0..upperbound] { _sieve_size = upperbound + 1; // add 1 to include upperbound bs.set(); // set all bits to 1 bs[0] = bs[1] = 0; // except index 0 and 1 for (ll i = 2; i <= _sieve_size; i++) if (bs[i]) { // cross out multiples of i starting from i * i! for (ll j = i * i; j <= _sieve_size; j += i) bs[j] = 0; primes.push_back((int)i); // also add this vector containing list of primes } } // call this method in main method bool isPrime(ll N) // a good enough deterministic prime tester { if (N <= _sieve_size) return bs[N]; // O(1) for small primes for (int i = 0; i < (int)primes.size(); i++) if (N % primes[i] == 0) return false; return true; // it takes longer time if N is a large prime! } int main() { sieve(100005); int test, n; sf1( test ); while( test-- ) { sf1( n ); ll digit = 0; for( int i = 1; i <= n; i++ ) { if( isPrime(i) ) { digit++; } } if( digit % 2 == 0 ) { printf("Bob\n"); } else { printf("Alice\n"); } } return 0; }