#include using namespace std; void 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. int prime[n+1]; for(int i = 0;i < n+1;i++) prime[i]= 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] == 1) { // Update all multiples of p for (int i=p*2; i<=n; i += p) prime[i] = 0; } } int h = 0; // Print all prime numbers for (int p=2; p<=n; p++){ if (prime[p] == 1) { h++;} } if(h%2 == 0) cout<<"Bob"<<"\n"; else cout<<"Alice"<<"\n"; } // Driver Program to test above function int main() { int g; int n; cin >>g; for(int i = 0; i< g;i++) {cin>>n; if(n==1) cout<<"Bob"<<"\n"; else SieveOfEratosthenes(n);} return 0; }