#include #include #include #include #define N_MAX 100010 using namespace std; vector primos; bitset bs; void calc() { bs.set(); //bs.assign(N_MAX, 1); bs[0] = 0; bs[1] = 0; for (long long i = 2; i < N_MAX; i++) { if (bs[i]) { for (long long j = i*i; j < N_MAX; j += i) bs[j] = 0; primos.push_back(i); } } } int main() { //dynamic_bitset::resize(N_MAX); //printf("primos:\n"); calc(); /* printf("primos:\n"); for (int i = 0; i < primos.size(); i++) printf("%d ", primos[i]); printf("\n"); */ int testes; scanf("%d", &testes); for (int i = 0; i < testes; i++) { int n; scanf("%d", &n); int index = distance(primos.begin(), lower_bound(primos.begin(), primos.end(), n)); /* int index = -1; while (true) { if (primos[index+1] <= n) index++; else break; } */ //printf("primo: %d, index: %d\n", primos[index], index); if (n < primos[index]) index--; //printf("primo: %d, index: %d\n", primos[index], index); if (n < 2) printf("Bob\n"); else if (index % 2 == 0) printf("Alice\n"); else printf("Bob\n"); } return 0; }