#include using namespace std; #define all(a) a.begin(), a.end() #define minimum(a) *min_element(a.begin(), a.end()) #define maximum(a) *max_element(a.begin(), a.end()) #define cerr1(a) cerr << "[ " << a << " ]\n" #define cerr2(a,b) cerr << "[ " << a << " , " << b << " ]\n" #define cerr3(a,b,c) cerr << "[ " << a << " , " << b << " , " << c << " ]\n" typedef long long ll; typedef long double ld; const int INF = 0x3f3f3f3f, MOD = 1e9 + 7; ll power(ll a, ll n) {ll p = 1;while (n > 0) {if(n%2) {p = p * a;} n >>= 1; a *= a;} return p;} ll power(ll a, ll n, ll mod) {ll p = 1;while (n > 0) {if(n%2) {p = p * a; p %= mod;} n >>= 1; a *= a; a %= mod;} return p % mod;} ll add(ll a , ll b , ll mod = MOD){return (a + b) % mod;} ll sub(ll a , ll b , ll mod = MOD){return ((a-b)%mod + mod)%mod;} ll mul(ll a , ll b , ll mod = MOD){return (a * b) % mod;} ll divide(ll a , ll b , ll mod = MOD){return (a * power(b,mod-2,mod))%mod;} int seive[100005] = {0}; std::vector p2; void init() { seive[0] = 0; seive[1] = 1; for (int i = 2; i < 100005 ; i++) { for (int j = 1; j*i < 100005;j++ ) { if (seive[i*j] == 0) seive[i*j] = i; } } for (int i = 2; i < 100005; ++i) { if(seive[i] == i) p2.push_back(i); } } int main(int argc, char const *argv[]) { ios::sync_with_stdio(0); init(); int q; cin >> q; while(q--) { int n; cin >> n; if (n == 1) { cout <<"Bob\n"; continue; } if (binary_search(all(p2),n)) { if ((lower_bound(all(p2),n)-p2.begin())%2 == 1) cout << "Bob\n"; else cout << "Alice\n"; } else { if ((lower_bound(all(p2),n)-p2.begin())%2 == 0) cout << "Bob\n"; else cout << "Alice\n"; } } return 0; }