/***************************************************\ * Mir Abdullah yousuf * * Khulna University of Engineering & Technology * * Electrical and Electronic Engineering, 2k14 * \***************************************************/ #include #define LL long long #define PI acos(-1.0) #define PII pair #define ff first #define ss second #define MS(a,b) memset(a, b, sizeof (a)) #define MP(a,b) make_pair(a, b) #define sf(a) scanf("%d", &a) #define sff(a, b) scanf("%d %d", &a, &b) #define sfff(a, b, c) scanf("%d %d %d", &a, &b, &c) #define sfl(a) scanf("%lld", &a) #define sfll(a, b) scanf("%lld %lld", &a, &b) #define sflll(a, b, c) scanf("%lld %lld %lld", &a, &b, &c) #define READ() freopen("input.txt", "r", stdin) #define WRITE() freopen("output.txt", "w", stdout) #define GCD(a, b) __gcd(a, b) #define sqr(a) (a) * (a) #define MOD 10000007 #define MAX 100001 using namespace std; ///***********-8-direction*************/ //int fx[] = {1, -1, 0, 0, 1, -1, -1, 1}; //int fy[] = {0, 0, 1, -1, 1, 1, -1, -1}; ///***********-4-direction*************/ //int fx[] = {1, -1, 0, 0}; //int fy[] = {0, 0, 1, -1}; bool visited[MAX]; map< int, int > mp; vector< int > v; void Sieve () { for (int i = 4; i <= MAX; i += 2) visited[i] = true; for (int i = 3; i*i <= MAX; i += 2) { if (!visited[i]) { for (int j = i*i; j <= MAX; j += i+i) visited[j] = true; } } int k = 1; for (int i = 1; i <= MAX; i++) { if (!visited[i] && k == 1) mp[i] = 1, k = 2, v.push_back(i); else if (!visited[i] && k == 2) mp[i] = 2, k = 1, v.push_back(i); } } int bin (int n) { int lo = 0, hi = v.size(), mid; while (lo <= hi) { mid = (lo + hi) / 2; if (v[mid] < n) lo = mid + 1; else if (v[mid] > n) hi = mid - 1; } if (v[mid] > n) { while (v[mid] > n) mid--; } else if (v[mid] < n) { while (v[mid] < n) mid++; mid--; } // cout << v[mid] << endl; return v[mid]; } int main() { Sieve(); int t, n; sf(t); while (t--) { cin >> n; int k = mp[n]; if (k == 0) { k = bin(n); k = mp[k]; } if (k % 2 == 0) cout << "Alice" << endl; else cout << "Bob" << endl; } return 0; }