#include #define ll long long #define f first #define s second #define pii pair< ll,ll > #define pb push_back #define sc(x) scanf("%d",&x) #define lw lower_bound #define llmax 1e9 #define mod 1000000007 #define block 350 #define MAX 100010 using namespace std; priority_queue > q1 ; map mii ; map ::iterator iit ; map msi ; map ::iterator sit ; map mci ; map ::iterator cit ; vector v ; vector ::iterator vit ; map mp ; bool prime [MAX] ; int dp[MAX] ; 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<=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; } } } int main () { ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0); SieveOfEratosthenes (MAX-1) ; for (int i=0;i>t ; while (t--) { int n ; cin >>n ; if (dp[n]&1) cout <<"Alice\n"; else cout <<"Bob\n" ; } }