#include #include #include #include #include #include #include bool prime[100000]; 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 memset(prime, true, sizeof(prime)); for (int p=2; p*p<=100000; 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<=100000; i += p) prime[i] = false; } } } int main(){ int g; scanf("%d",&g); SieveOfEratosthenes(100000); for(int a0 = 0; a0 < g; a0++){ int n,count=0,i; scanf("%d",&n); for(i=n;i>=2;i--){ if(prime[i]) count++; } if(count%2==0) printf("Bob\n"); else printf("Alice\n"); } // your code goes here return 0; }