#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int SieveOfEratosthenes(int n) { // Create a boolean array "prime[0..n]" and initialize // all entries it as true. A value in prime[i] will // finally be false if i is Not a prime, else true. bool prime[n+1]; memset(prime, true, sizeof(prime)); int cc=0; // memset(prime, true, sizeof(prime)); for (int p=2; p*p<=n; p++) { // If prime[p] is not changed, then it is a prime if (prime[p] == true) { // Update all multiples of p for (int i=p*2; i<=n; i += p) prime[i] = false; } } // Print all prime numbers for (int p=2; p<=n; p++) { if (prime[p]) cc++; } return cc; } int main(){ int t; scanf("%d",&t); while(t--) { int num,i,count,n; scanf("%d",&n); int c=SieveOfEratosthenes(n); //printf("%d\n",c); if(c%2!=0) printf("Alice\n"); else printf("Bob\n"); } return 0; }