#include using namespace std; typedef long long ll; ll _sieve_size; bitset<10000010> bs; typedef vector vi; vi primes; void sieve(ll upperbound) { _sieve_size = upperbound + 1; bs.reset(); bs.flip(); bs.set(0, false); bs.set(1, false); for (ll i = 2; i <= _sieve_size; i++) if (bs.test((size_t)i)) { for (ll j = i * i; j <= _sieve_size; j += i) bs.set((size_t)j, false); primes.push_back((int)i); } } int n; int bin_search(int x, int y, int k){ if(y > x+1){ int mid = (x+y)/2; if(primes[mid] == k){ return mid; } else if(primes[mid] > k) return bin_search(x,mid,k); else return bin_search(mid,y,k); } int ans = x; for(int i = x-1; i <= y; ++i ){ if( i >= 0 && i < n) if(primes[i] <= k) ans = i; } return ans; } int main(){ int g; cin >> g; sieve((int)1e5+10); n = primes.size(); for(int a0 = 0; a0 < g; a0++){ int k; cin >> k; if(k == 1){ cout<<"Bob\n"; continue; } int prime_count = bin_search(0,n-1,k)+1; if(prime_count&1){ cout<<"Alice\n"; } else cout<<"Bob\n"; } return 0; }