/* You lost the game. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define fin(i,n) for (int i = 0; i < n; i++) #define fin2(i,a,b) for (int i = a; i < b; i++) #define mp make_pair #define pb push_back #define si(n) scanf("%d", &n) #define sii(n,m) scanf("%d %d", &n, &m) #define siii(n,m,k) scanf("%d %d %d", &n, &m, &k) #define sl(n) scanf("%lld", &n) #define sll(n,m) scanf("%lld %lld", &n, &m) #define slll(n,m,k) scanf("%lld %lld %lld", &n, &m, &k) #define ss(s) scanf("%s", s) #define pi(n) printf("%d\n", n) #define pii(n,m) printf("%d %d\n", n, m) #define pl(n) printf("%lld\n", n) #define pll(n,m) printf("%lld %lld\n", n, m) #define L long long int #define PII pair #define VPII vector #define VL vector #define VI vector #define VVI vector using namespace std; int verd[100001] = {}; void runEratosthenesSieve(int upperBound) { int upperBoundSquareRoot = (int)sqrt((double)upperBound); bool *isComposite = new bool[upperBound + 1]; memset(isComposite, 0, sizeof(bool) * (upperBound + 1)); for (int m = 2; m <= upperBoundSquareRoot; m++) { if (!isComposite[m]) { verd[m] = 1; for (int k = m * m; k <= upperBound; k += m) isComposite[k] = true; } } for (int m = upperBoundSquareRoot; m <= upperBound; m++) if (!isComposite[m]) verd[m] = 1; delete [] isComposite; } int main() { int g,n; si(g); runEratosthenesSieve(100000); fin2(i, 1, 100001) { verd[i] += verd[i-1]; } fin(i, g) { si(n); if (verd[n] % 2 == 1) { printf("Alice\n"); } else { printf("Bob\n"); } } }