#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; int SieveOfEratosthenes(int n) { int cunt = 0; // 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)); 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]) cunt++;//cout << p << " "; return cunt; } int main(){ int g; cin >> g; for(int a0 = 0; a0 < g; a0++){ int n; cin >> n; // your code goes here int low = 2, high = n+1, i, flag, cunt = 0; cunt = SieveOfEratosthenes(n); //cout << cunt << endl; if(n == 1) cout << "Bob" << endl; else if(cunt%2 == 1) cout << "Alice" << endl; else cout << "Bob" << endl; } return 0; }