#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; vector primes; bool isPrime(int p) { int i = 0; while(primes[i] * primes[i] <= p) { if(p % primes[i] == 0) return false; i++; } return true; } void InitPrimes() { primes.push_back(2); int p = 3; while(p <= 100000) { if(isPrime(p)) primes.push_back(p); p += 2; } } int findNumPrimesLess(int n) { int psz = primes.size(); int high = psz - 1; int low = 0; int mid = (low + high) / 2; if(n > primes[high]) return high + 1; if(n < primes[0]) return 0; if(primes[high] == n) return high + 1; if(primes[low] == n) return low + 1; while(low < high) { mid = (low + high) / 2; if(primes[mid] == n) { return mid + 1; } if(n > primes[mid] && n < primes[mid+1]) { return mid + 1; } if(n > primes[mid]) low = mid + 1; else high = mid; } return -1; } bool solve(int n) { return findNumPrimesLess(n) % 2 == 1; } int main(){ int g; cin >> g; InitPrimes(); //cout << primes.size() << endl; for(int a0 = 0; a0 < g; a0++){ int n; cin >> n; // your code goes here if(solve(n)) { cout << "Alice\n"; } else { cout << "Bob\n"; } } return 0; }